diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,30 @@
+Copyright David Kraeutmann (c) 2018
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of David Kraeutmann nor the names of other
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+# godot-haskell
+Haskell bindings for the Godot game engine.
+* Low-level stuff (GDNative) resides in Godot.Gdnative
+* Nativescript stuff (binding classes/methods/etc) is in Godot.Nativescript
+* High-level stuff (classes generated from the API description) is in Godot.Api, whereas methods are in Godot.Methods
+
+For an example project by lboklin, see addons/godot-haskell-plugin at https://gitlab.com/lboklin/godot-haskell-test/tree/godot-project
+
+Questions, etc are best asked in the Gitter chatroom for SimulaVR: [![Gitter](https://badges.gitter.im/SimulaVR/Simula.svg)](https://gitter.im/SimulaVR/Simula?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
+
+# Docs
+The Haskell specific stuff is documented, but I'm not importing the docstrings from the Godot API yet. Refer to the Godot docs for that
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/cbits/util.h b/cbits/util.h
new file mode 100644
--- /dev/null
+++ b/cbits/util.h
@@ -0,0 +1,6 @@
+#ifndef GODOT_HASKELL_UTIL_H__
+#define GODOT_HASKELL_UTIL_H__
+
+#include <gdnative/gdnative.h>
+
+#endif /* GODOT_HASKELL_UTIL_H__ */
diff --git a/godot-haskell.cabal b/godot-haskell.cabal
new file mode 100644
--- /dev/null
+++ b/godot-haskell.cabal
@@ -0,0 +1,680 @@
+cabal-version: 2.0
+name: godot-haskell
+version: 0.1.0.0
+license: BSD3
+license-file: LICENSE
+copyright: 2018 David Kraeutmann
+maintainer: kane@kane.cx
+author: David Kraeutmann
+homepage: https://github.com/KaneTW/godot-haskell#readme
+bug-reports: https://github.com/KaneTW/godot-haskell/issues
+synopsis: Haskell bindings for the Godot game engine API
+description:
+    This package contains Haskell bindings for GDNative and the Godot API. For details and examples, see README.md
+    This is intended to be used with Godot master 91e5782. Versioning scheme subject to change as I figure out a good way to maintain a link to the Godot versioning.
+category: Web
+build-type: Simple
+extra-source-files:
+    README.md
+    cbits/util.h
+    godot_headers/android/godot_android.h
+    godot_headers/arvr/godot_arvr.h
+    godot_headers/gdnative/aabb.h
+    godot_headers/gdnative/array.h
+    godot_headers/gdnative/basis.h
+    godot_headers/gdnative/color.h
+    godot_headers/gdnative/dictionary.h
+    godot_headers/gdnative/gdnative.h
+    godot_headers/gdnative/node_path.h
+    godot_headers/gdnative/plane.h
+    godot_headers/gdnative/pool_arrays.h
+    godot_headers/gdnative/quat.h
+    godot_headers/gdnative/rect2.h
+    godot_headers/gdnative/rid.h
+    godot_headers/gdnative/string.h
+    godot_headers/gdnative/string_name.h
+    godot_headers/gdnative/transform.h
+    godot_headers/gdnative/transform2d.h
+    godot_headers/gdnative/variant.h
+    godot_headers/gdnative/vector2.h
+    godot_headers/gdnative/vector3.h
+    godot_headers/gdnative_api_struct.gen.h
+    godot_headers/nativescript/godot_nativescript.h
+    godot_headers/net/godot_net.h
+    godot_headers/pluginscript/godot_pluginscript.h
+    godot_headers/api.json
+    godot_headers/gdnative_api.json
+
+source-repository head
+    type: git
+    location: https://github.com/KaneTW/godot-haskell
+
+library
+    exposed-modules:
+        Godot.Api
+        Godot.Api.Auto
+        Godot.Api.VarArgs
+        Godot.Core.Godot_ClassDB
+        Godot.Core.Godot_Directory
+        Godot.Core.Godot_Engine
+        Godot.Core.Godot_File
+        Godot.Core.Godot_Geometry
+        Godot.Core.Godot_JSON
+        Godot.Core.Godot_Marshalls
+        Godot.Core.Godot_Mutex
+        Godot.Core.Godot_OS
+        Godot.Core.Godot_ResourceLoader
+        Godot.Core.Godot_ResourceSaver
+        Godot.Core.Godot_Semaphore
+        Godot.Core.Godot_Thread
+        Godot.Core.Godot_VisualScriptEditor
+        Godot.Core.GodotAcceptDialog
+        Godot.Core.GodotAnimatedSprite
+        Godot.Core.GodotAnimatedSprite3D
+        Godot.Core.GodotAnimatedTexture
+        Godot.Core.GodotAnimation
+        Godot.Core.GodotAnimationNode
+        Godot.Core.GodotAnimationNodeAdd2
+        Godot.Core.GodotAnimationNodeAdd3
+        Godot.Core.GodotAnimationNodeAnimation
+        Godot.Core.GodotAnimationNodeBlend2
+        Godot.Core.GodotAnimationNodeBlend3
+        Godot.Core.GodotAnimationNodeBlendSpace1D
+        Godot.Core.GodotAnimationNodeBlendSpace2D
+        Godot.Core.GodotAnimationNodeBlendTree
+        Godot.Core.GodotAnimationNodeOneShot
+        Godot.Core.GodotAnimationNodeOutput
+        Godot.Core.GodotAnimationNodeStateMachine
+        Godot.Core.GodotAnimationNodeStateMachinePlayback
+        Godot.Core.GodotAnimationNodeStateMachineTransition
+        Godot.Core.GodotAnimationNodeTimeScale
+        Godot.Core.GodotAnimationNodeTimeSeek
+        Godot.Core.GodotAnimationNodeTransition
+        Godot.Core.GodotAnimationPlayer
+        Godot.Core.GodotAnimationRootNode
+        Godot.Core.GodotAnimationTree
+        Godot.Core.GodotAnimationTreePlayer
+        Godot.Core.GodotArea
+        Godot.Core.GodotArea2D
+        Godot.Core.GodotArrayMesh
+        Godot.Core.GodotARVRAnchor
+        Godot.Core.GodotARVRCamera
+        Godot.Core.GodotARVRController
+        Godot.Core.GodotARVRInterface
+        Godot.Core.GodotARVRInterfaceGDNative
+        Godot.Core.GodotARVROrigin
+        Godot.Core.GodotARVRPositionalTracker
+        Godot.Core.GodotARVRServer
+        Godot.Core.GodotAStar
+        Godot.Core.GodotAtlasTexture
+        Godot.Core.GodotAudioBusLayout
+        Godot.Core.GodotAudioEffect
+        Godot.Core.GodotAudioEffectAmplify
+        Godot.Core.GodotAudioEffectBandLimitFilter
+        Godot.Core.GodotAudioEffectBandPassFilter
+        Godot.Core.GodotAudioEffectChorus
+        Godot.Core.GodotAudioEffectCompressor
+        Godot.Core.GodotAudioEffectDelay
+        Godot.Core.GodotAudioEffectDistortion
+        Godot.Core.GodotAudioEffectEQ
+        Godot.Core.GodotAudioEffectEQ10
+        Godot.Core.GodotAudioEffectEQ21
+        Godot.Core.GodotAudioEffectEQ6
+        Godot.Core.GodotAudioEffectFilter
+        Godot.Core.GodotAudioEffectHighPassFilter
+        Godot.Core.GodotAudioEffectHighShelfFilter
+        Godot.Core.GodotAudioEffectLimiter
+        Godot.Core.GodotAudioEffectLowPassFilter
+        Godot.Core.GodotAudioEffectLowShelfFilter
+        Godot.Core.GodotAudioEffectNotchFilter
+        Godot.Core.GodotAudioEffectPanner
+        Godot.Core.GodotAudioEffectPhaser
+        Godot.Core.GodotAudioEffectPitchShift
+        Godot.Core.GodotAudioEffectRecord
+        Godot.Core.GodotAudioEffectReverb
+        Godot.Core.GodotAudioEffectStereoEnhance
+        Godot.Core.GodotAudioServer
+        Godot.Core.GodotAudioStream
+        Godot.Core.GodotAudioStreamMicrophone
+        Godot.Core.GodotAudioStreamOGGVorbis
+        Godot.Core.GodotAudioStreamPlayback
+        Godot.Core.GodotAudioStreamPlayer
+        Godot.Core.GodotAudioStreamPlayer2D
+        Godot.Core.GodotAudioStreamPlayer3D
+        Godot.Core.GodotAudioStreamRandomPitch
+        Godot.Core.GodotAudioStreamSample
+        Godot.Core.GodotBackBufferCopy
+        Godot.Core.GodotBakedLightmap
+        Godot.Core.GodotBakedLightmapData
+        Godot.Core.GodotBaseButton
+        Godot.Core.GodotBitMap
+        Godot.Core.GodotBitmapFont
+        Godot.Core.GodotBone2D
+        Godot.Core.GodotBoneAttachment
+        Godot.Core.GodotBoxContainer
+        Godot.Core.GodotBoxShape
+        Godot.Core.GodotBulletPhysicsDirectBodyState
+        Godot.Core.GodotBulletPhysicsServer
+        Godot.Core.GodotButton
+        Godot.Core.GodotButtonGroup
+        Godot.Core.GodotCamera
+        Godot.Core.GodotCamera2D
+        Godot.Core.GodotCanvasItem
+        Godot.Core.GodotCanvasItemMaterial
+        Godot.Core.GodotCanvasLayer
+        Godot.Core.GodotCanvasModulate
+        Godot.Core.GodotCapsuleMesh
+        Godot.Core.GodotCapsuleShape
+        Godot.Core.GodotCapsuleShape2D
+        Godot.Core.GodotCenterContainer
+        Godot.Core.GodotCheckBox
+        Godot.Core.GodotCheckButton
+        Godot.Core.GodotCircleShape2D
+        Godot.Core.GodotClippedCamera
+        Godot.Core.GodotCollisionObject
+        Godot.Core.GodotCollisionObject2D
+        Godot.Core.GodotCollisionPolygon
+        Godot.Core.GodotCollisionPolygon2D
+        Godot.Core.GodotCollisionShape
+        Godot.Core.GodotCollisionShape2D
+        Godot.Core.GodotColorPicker
+        Godot.Core.GodotColorPickerButton
+        Godot.Core.GodotColorRect
+        Godot.Core.GodotConcavePolygonShape
+        Godot.Core.GodotConcavePolygonShape2D
+        Godot.Core.GodotConeTwistJoint
+        Godot.Core.GodotConfigFile
+        Godot.Core.GodotConfirmationDialog
+        Godot.Core.GodotContainer
+        Godot.Core.GodotControl
+        Godot.Core.GodotConvexPolygonShape
+        Godot.Core.GodotConvexPolygonShape2D
+        Godot.Core.GodotCPUParticles
+        Godot.Core.GodotCPUParticles2D
+        Godot.Core.GodotCSGBox
+        Godot.Core.GodotCSGCombiner
+        Godot.Core.GodotCSGCylinder
+        Godot.Core.GodotCSGMesh
+        Godot.Core.GodotCSGPolygon
+        Godot.Core.GodotCSGPrimitive
+        Godot.Core.GodotCSGShape
+        Godot.Core.GodotCSGSphere
+        Godot.Core.GodotCSGTorus
+        Godot.Core.GodotCubeMap
+        Godot.Core.GodotCubeMesh
+        Godot.Core.GodotCurve
+        Godot.Core.GodotCurve2D
+        Godot.Core.GodotCurve3D
+        Godot.Core.GodotCurveTexture
+        Godot.Core.GodotCylinderMesh
+        Godot.Core.GodotCylinderShape
+        Godot.Core.GodotDampedSpringJoint2D
+        Godot.Core.GodotDirectionalLight
+        Godot.Core.GodotDynamicFont
+        Godot.Core.GodotDynamicFontData
+        Godot.Core.GodotEncodedObjectAsID
+        Godot.Core.GodotEnvironment
+        Godot.Core.GodotExpression
+        Godot.Core.GodotFileDialog
+        Godot.Core.GodotFont
+        Godot.Core.GodotFuncRef
+        Godot.Core.GodotGDNative
+        Godot.Core.GodotGDNativeLibrary
+        Godot.Core.GodotGDScript
+        Godot.Core.GodotGDScriptFunctionState
+        Godot.Core.GodotGeneric6DOFJoint
+        Godot.Core.GodotGeometryInstance
+        Godot.Core.GodotGIProbe
+        Godot.Core.GodotGIProbeData
+        Godot.Core.GodotGlobalConstants
+        Godot.Core.GodotGradient
+        Godot.Core.GodotGradientTexture
+        Godot.Core.GodotGraphEdit
+        Godot.Core.GodotGraphNode
+        Godot.Core.GodotGridContainer
+        Godot.Core.GodotGridMap
+        Godot.Core.GodotGrooveJoint2D
+        Godot.Core.GodotHBoxContainer
+        Godot.Core.GodotHingeJoint
+        Godot.Core.GodotHScrollBar
+        Godot.Core.GodotHSeparator
+        Godot.Core.GodotHSlider
+        Godot.Core.GodotHSplitContainer
+        Godot.Core.GodotHTTPClient
+        Godot.Core.GodotHTTPRequest
+        Godot.Core.GodotImage
+        Godot.Core.GodotImageTexture
+        Godot.Core.GodotImmediateGeometry
+        Godot.Core.GodotInput
+        Godot.Core.GodotInputDefault
+        Godot.Core.GodotInputEvent
+        Godot.Core.GodotInputEventAction
+        Godot.Core.GodotInputEventGesture
+        Godot.Core.GodotInputEventJoypadButton
+        Godot.Core.GodotInputEventJoypadMotion
+        Godot.Core.GodotInputEventKey
+        Godot.Core.GodotInputEventMagnifyGesture
+        Godot.Core.GodotInputEventMouse
+        Godot.Core.GodotInputEventMouseButton
+        Godot.Core.GodotInputEventMouseMotion
+        Godot.Core.GodotInputEventPanGesture
+        Godot.Core.GodotInputEventScreenDrag
+        Godot.Core.GodotInputEventScreenTouch
+        Godot.Core.GodotInputEventWithModifiers
+        Godot.Core.GodotInputMap
+        Godot.Core.GodotInstancePlaceholder
+        Godot.Core.GodotInterpolatedCamera
+        Godot.Core.GodotIP
+        Godot.Core.GodotIP_Unix
+        Godot.Core.GodotItemList
+        Godot.Core.GodotJavaScript
+        Godot.Core.GodotJoint
+        Godot.Core.GodotJoint2D
+        Godot.Core.GodotJSONParseResult
+        Godot.Core.GodotKinematicBody
+        Godot.Core.GodotKinematicBody2D
+        Godot.Core.GodotKinematicCollision
+        Godot.Core.GodotKinematicCollision2D
+        Godot.Core.GodotLabel
+        Godot.Core.GodotLargeTexture
+        Godot.Core.GodotLight
+        Godot.Core.GodotLight2D
+        Godot.Core.GodotLightOccluder2D
+        Godot.Core.GodotLine2D
+        Godot.Core.GodotLineEdit
+        Godot.Core.GodotLineShape2D
+        Godot.Core.GodotLinkButton
+        Godot.Core.GodotListener
+        Godot.Core.GodotMainLoop
+        Godot.Core.GodotMarginContainer
+        Godot.Core.GodotMaterial
+        Godot.Core.GodotMenuButton
+        Godot.Core.GodotMesh
+        Godot.Core.GodotMeshDataTool
+        Godot.Core.GodotMeshInstance
+        Godot.Core.GodotMeshInstance2D
+        Godot.Core.GodotMeshLibrary
+        Godot.Core.GodotMobileVRInterface
+        Godot.Core.GodotMultiMesh
+        Godot.Core.GodotMultiMeshInstance
+        Godot.Core.GodotMultiplayerAPI
+        Godot.Core.GodotMultiplayerPeerGDNative
+        Godot.Core.GodotNativeScript
+        Godot.Core.GodotNavigation
+        Godot.Core.GodotNavigation2D
+        Godot.Core.GodotNavigationMesh
+        Godot.Core.GodotNavigationMeshInstance
+        Godot.Core.GodotNavigationPolygon
+        Godot.Core.GodotNavigationPolygonInstance
+        Godot.Core.GodotNetworkedMultiplayerENet
+        Godot.Core.GodotNetworkedMultiplayerPeer
+        Godot.Core.GodotNinePatchRect
+        Godot.Core.GodotNode
+        Godot.Core.GodotNode2D
+        Godot.Core.GodotNoiseTexture
+        Godot.Core.GodotObject
+        Godot.Core.GodotOccluderPolygon2D
+        Godot.Core.GodotOmniLight
+        Godot.Core.GodotOpenSimplexNoise
+        Godot.Core.GodotOptionButton
+        Godot.Core.GodotOrientedPathFollow
+        Godot.Core.GodotPackedDataContainer
+        Godot.Core.GodotPackedDataContainerRef
+        Godot.Core.GodotPackedScene
+        Godot.Core.GodotPacketPeer
+        Godot.Core.GodotPacketPeerGDNative
+        Godot.Core.GodotPacketPeerStream
+        Godot.Core.GodotPacketPeerUDP
+        Godot.Core.GodotPanel
+        Godot.Core.GodotPanelContainer
+        Godot.Core.GodotPanoramaSky
+        Godot.Core.GodotParallaxBackground
+        Godot.Core.GodotParallaxLayer
+        Godot.Core.GodotParticles
+        Godot.Core.GodotParticles2D
+        Godot.Core.GodotParticlesMaterial
+        Godot.Core.GodotPath
+        Godot.Core.GodotPath2D
+        Godot.Core.GodotPathFollow
+        Godot.Core.GodotPathFollow2D
+        Godot.Core.GodotPCKPacker
+        Godot.Core.GodotPerformance
+        Godot.Core.GodotPHashTranslation
+        Godot.Core.GodotPhysicalBone
+        Godot.Core.GodotPhysics2DDirectBodyState
+        Godot.Core.GodotPhysics2DDirectBodyStateSW
+        Godot.Core.GodotPhysics2DDirectSpaceState
+        Godot.Core.GodotPhysics2DServer
+        Godot.Core.GodotPhysics2DServerSW
+        Godot.Core.GodotPhysics2DShapeQueryParameters
+        Godot.Core.GodotPhysics2DShapeQueryResult
+        Godot.Core.GodotPhysics2DTestMotionResult
+        Godot.Core.GodotPhysicsBody
+        Godot.Core.GodotPhysicsBody2D
+        Godot.Core.GodotPhysicsDirectBodyState
+        Godot.Core.GodotPhysicsDirectSpaceState
+        Godot.Core.GodotPhysicsMaterial
+        Godot.Core.GodotPhysicsServer
+        Godot.Core.GodotPhysicsShapeQueryParameters
+        Godot.Core.GodotPhysicsShapeQueryResult
+        Godot.Core.GodotPinJoint
+        Godot.Core.GodotPinJoint2D
+        Godot.Core.GodotPlaneMesh
+        Godot.Core.GodotPlaneShape
+        Godot.Core.GodotPluginScript
+        Godot.Core.GodotPolygon2D
+        Godot.Core.GodotPolygonPathFinder
+        Godot.Core.GodotPopup
+        Godot.Core.GodotPopupDialog
+        Godot.Core.GodotPopupMenu
+        Godot.Core.GodotPopupPanel
+        Godot.Core.GodotPosition2D
+        Godot.Core.GodotPosition3D
+        Godot.Core.GodotPrimitiveMesh
+        Godot.Core.GodotPrismMesh
+        Godot.Core.GodotProceduralSky
+        Godot.Core.GodotProgressBar
+        Godot.Core.GodotProjectSettings
+        Godot.Core.GodotProximityGroup
+        Godot.Core.GodotProxyTexture
+        Godot.Core.GodotQuadMesh
+        Godot.Core.GodotRange
+        Godot.Core.GodotRayCast
+        Godot.Core.GodotRayCast2D
+        Godot.Core.GodotRayShape
+        Godot.Core.GodotRayShape2D
+        Godot.Core.GodotRectangleShape2D
+        Godot.Core.GodotReference
+        Godot.Core.GodotReferenceRect
+        Godot.Core.GodotReflectionProbe
+        Godot.Core.GodotRegEx
+        Godot.Core.GodotRegExMatch
+        Godot.Core.GodotRemoteTransform
+        Godot.Core.GodotRemoteTransform2D
+        Godot.Core.GodotResource
+        Godot.Core.GodotResourceImporter
+        Godot.Core.GodotResourceImporterOGGVorbis
+        Godot.Core.GodotResourceImporterTheora
+        Godot.Core.GodotResourceImporterWebm
+        Godot.Core.GodotResourceInteractiveLoader
+        Godot.Core.GodotResourcePreloader
+        Godot.Core.GodotRichTextLabel
+        Godot.Core.GodotRigidBody
+        Godot.Core.GodotRigidBody2D
+        Godot.Core.GodotRootMotionView
+        Godot.Core.GodotSceneState
+        Godot.Core.GodotSceneTree
+        Godot.Core.GodotSceneTreeTimer
+        Godot.Core.GodotScript
+        Godot.Core.GodotScrollBar
+        Godot.Core.GodotScrollContainer
+        Godot.Core.GodotSegmentShape2D
+        Godot.Core.GodotSeparator
+        Godot.Core.GodotShader
+        Godot.Core.GodotShaderMaterial
+        Godot.Core.GodotShape
+        Godot.Core.GodotShape2D
+        Godot.Core.GodotShortCut
+        Godot.Core.GodotSkeleton
+        Godot.Core.GodotSkeleton2D
+        Godot.Core.GodotSkeletonIK
+        Godot.Core.GodotSky
+        Godot.Core.GodotSlider
+        Godot.Core.GodotSliderJoint
+        Godot.Core.GodotSoftBody
+        Godot.Core.GodotSpatial
+        Godot.Core.GodotSpatialGizmo
+        Godot.Core.GodotSpatialMaterial
+        Godot.Core.GodotSpatialVelocityTracker
+        Godot.Core.GodotSphereMesh
+        Godot.Core.GodotSphereShape
+        Godot.Core.GodotSpinBox
+        Godot.Core.GodotSplitContainer
+        Godot.Core.GodotSpotLight
+        Godot.Core.GodotSpringArm
+        Godot.Core.GodotSprite
+        Godot.Core.GodotSprite3D
+        Godot.Core.GodotSpriteBase3D
+        Godot.Core.GodotSpriteFrames
+        Godot.Core.GodotStaticBody
+        Godot.Core.GodotStaticBody2D
+        Godot.Core.GodotStreamPeer
+        Godot.Core.GodotStreamPeerBuffer
+        Godot.Core.GodotStreamPeerGDNative
+        Godot.Core.GodotStreamPeerSSL
+        Godot.Core.GodotStreamPeerTCP
+        Godot.Core.GodotStreamTexture
+        Godot.Core.GodotStyleBox
+        Godot.Core.GodotStyleBoxEmpty
+        Godot.Core.GodotStyleBoxFlat
+        Godot.Core.GodotStyleBoxLine
+        Godot.Core.GodotStyleBoxTexture
+        Godot.Core.GodotSurfaceTool
+        Godot.Core.GodotTabContainer
+        Godot.Core.GodotTabs
+        Godot.Core.GodotTCP_Server
+        Godot.Core.GodotTextEdit
+        Godot.Core.GodotTextFile
+        Godot.Core.GodotTexture
+        Godot.Core.GodotTexture3D
+        Godot.Core.GodotTextureArray
+        Godot.Core.GodotTextureButton
+        Godot.Core.GodotTextureLayered
+        Godot.Core.GodotTextureProgress
+        Godot.Core.GodotTextureRect
+        Godot.Core.GodotTheme
+        Godot.Core.GodotTileMap
+        Godot.Core.GodotTileSet
+        Godot.Core.GodotTimer
+        Godot.Core.GodotToolButton
+        Godot.Core.GodotTouchScreenButton
+        Godot.Core.GodotTranslation
+        Godot.Core.GodotTranslationServer
+        Godot.Core.GodotTree
+        Godot.Core.GodotTreeItem
+        Godot.Core.GodotTriangleMesh
+        Godot.Core.GodotTween
+        Godot.Core.GodotUndoRedo
+        Godot.Core.GodotUPNP
+        Godot.Core.GodotUPNPDevice
+        Godot.Core.GodotVBoxContainer
+        Godot.Core.GodotVehicleBody
+        Godot.Core.GodotVehicleWheel
+        Godot.Core.GodotVideoPlayer
+        Godot.Core.GodotVideoStream
+        Godot.Core.GodotVideoStreamTheora
+        Godot.Core.GodotVideoStreamWebm
+        Godot.Core.GodotViewport
+        Godot.Core.GodotViewportContainer
+        Godot.Core.GodotViewportTexture
+        Godot.Core.GodotVisibilityEnabler
+        Godot.Core.GodotVisibilityEnabler2D
+        Godot.Core.GodotVisibilityNotifier
+        Godot.Core.GodotVisibilityNotifier2D
+        Godot.Core.GodotVisualInstance
+        Godot.Core.GodotVisualScript
+        Godot.Core.GodotVisualScriptBasicTypeConstant
+        Godot.Core.GodotVisualScriptBuiltinFunc
+        Godot.Core.GodotVisualScriptClassConstant
+        Godot.Core.GodotVisualScriptComment
+        Godot.Core.GodotVisualScriptCondition
+        Godot.Core.GodotVisualScriptConstant
+        Godot.Core.GodotVisualScriptConstructor
+        Godot.Core.GodotVisualScriptCustomNode
+        Godot.Core.GodotVisualScriptDeconstruct
+        Godot.Core.GodotVisualScriptEmitSignal
+        Godot.Core.GodotVisualScriptEngineSingleton
+        Godot.Core.GodotVisualScriptExpression
+        Godot.Core.GodotVisualScriptFunction
+        Godot.Core.GodotVisualScriptFunctionCall
+        Godot.Core.GodotVisualScriptFunctionState
+        Godot.Core.GodotVisualScriptGlobalConstant
+        Godot.Core.GodotVisualScriptIndexGet
+        Godot.Core.GodotVisualScriptIndexSet
+        Godot.Core.GodotVisualScriptInputAction
+        Godot.Core.GodotVisualScriptIterator
+        Godot.Core.GodotVisualScriptLocalVar
+        Godot.Core.GodotVisualScriptLocalVarSet
+        Godot.Core.GodotVisualScriptMathConstant
+        Godot.Core.GodotVisualScriptNode
+        Godot.Core.GodotVisualScriptOperator
+        Godot.Core.GodotVisualScriptPreload
+        Godot.Core.GodotVisualScriptPropertyGet
+        Godot.Core.GodotVisualScriptPropertySet
+        Godot.Core.GodotVisualScriptResourcePath
+        Godot.Core.GodotVisualScriptReturn
+        Godot.Core.GodotVisualScriptSceneNode
+        Godot.Core.GodotVisualScriptSceneTree
+        Godot.Core.GodotVisualScriptSelect
+        Godot.Core.GodotVisualScriptSelf
+        Godot.Core.GodotVisualScriptSequence
+        Godot.Core.GodotVisualScriptSubCall
+        Godot.Core.GodotVisualScriptSwitch
+        Godot.Core.GodotVisualScriptTypeCast
+        Godot.Core.GodotVisualScriptVariableGet
+        Godot.Core.GodotVisualScriptVariableSet
+        Godot.Core.GodotVisualScriptWhile
+        Godot.Core.GodotVisualScriptYield
+        Godot.Core.GodotVisualScriptYieldSignal
+        Godot.Core.GodotVisualServer
+        Godot.Core.GodotVisualShader
+        Godot.Core.GodotVisualShaderNode
+        Godot.Core.GodotVisualShaderNodeColorConstant
+        Godot.Core.GodotVisualShaderNodeColorOp
+        Godot.Core.GodotVisualShaderNodeColorUniform
+        Godot.Core.GodotVisualShaderNodeCubeMap
+        Godot.Core.GodotVisualShaderNodeCubeMapUniform
+        Godot.Core.GodotVisualShaderNodeDotProduct
+        Godot.Core.GodotVisualShaderNodeInput
+        Godot.Core.GodotVisualShaderNodeOutput
+        Godot.Core.GodotVisualShaderNodeScalarConstant
+        Godot.Core.GodotVisualShaderNodeScalarFunc
+        Godot.Core.GodotVisualShaderNodeScalarInterp
+        Godot.Core.GodotVisualShaderNodeScalarOp
+        Godot.Core.GodotVisualShaderNodeScalarUniform
+        Godot.Core.GodotVisualShaderNodeTexture
+        Godot.Core.GodotVisualShaderNodeTextureUniform
+        Godot.Core.GodotVisualShaderNodeTransformCompose
+        Godot.Core.GodotVisualShaderNodeTransformConstant
+        Godot.Core.GodotVisualShaderNodeTransformDecompose
+        Godot.Core.GodotVisualShaderNodeTransformMult
+        Godot.Core.GodotVisualShaderNodeTransformUniform
+        Godot.Core.GodotVisualShaderNodeTransformVecMult
+        Godot.Core.GodotVisualShaderNodeUniform
+        Godot.Core.GodotVisualShaderNodeVec3Constant
+        Godot.Core.GodotVisualShaderNodeVec3Uniform
+        Godot.Core.GodotVisualShaderNodeVectorCompose
+        Godot.Core.GodotVisualShaderNodeVectorDecompose
+        Godot.Core.GodotVisualShaderNodeVectorFunc
+        Godot.Core.GodotVisualShaderNodeVectorInterp
+        Godot.Core.GodotVisualShaderNodeVectorLen
+        Godot.Core.GodotVisualShaderNodeVectorOp
+        Godot.Core.GodotVScrollBar
+        Godot.Core.GodotVSeparator
+        Godot.Core.GodotVSlider
+        Godot.Core.GodotVSplitContainer
+        Godot.Core.GodotWeakRef
+        Godot.Core.GodotWebSocketClient
+        Godot.Core.GodotWebSocketMultiplayerPeer
+        Godot.Core.GodotWebSocketPeer
+        Godot.Core.GodotWebSocketServer
+        Godot.Core.GodotWindowDialog
+        Godot.Core.GodotWorld
+        Godot.Core.GodotWorld2D
+        Godot.Core.GodotWorldEnvironment
+        Godot.Core.GodotXMLParser
+        Godot.Core.GodotYSort
+        Godot.Gdnative.Internal
+        Godot.Gdnative.Internal.Api
+        Godot.Gdnative.Internal.Gdnative
+        Godot.Gdnative.Internal.TH
+        Godot.Gdnative.Types
+        Godot.Internal.Dispatch
+        Godot.Methods
+        Godot.Nativescript
+        Godot.Tools.Godot_VisualScriptEditor
+        Godot.Tools.GodotAnimationTrackEditPlugin
+        Godot.Tools.GodotEditorExportPlugin
+        Godot.Tools.GodotEditorFileDialog
+        Godot.Tools.GodotEditorFileSystem
+        Godot.Tools.GodotEditorFileSystemDirectory
+        Godot.Tools.GodotEditorImportPlugin
+        Godot.Tools.GodotEditorInspector
+        Godot.Tools.GodotEditorInspectorPlugin
+        Godot.Tools.GodotEditorInterface
+        Godot.Tools.GodotEditorPlugin
+        Godot.Tools.GodotEditorProperty
+        Godot.Tools.GodotEditorResourceConversionPlugin
+        Godot.Tools.GodotEditorResourcePreview
+        Godot.Tools.GodotEditorResourcePreviewGenerator
+        Godot.Tools.GodotEditorSceneImporter
+        Godot.Tools.GodotEditorScenePostImport
+        Godot.Tools.GodotEditorScript
+        Godot.Tools.GodotEditorSelection
+        Godot.Tools.GodotEditorSettings
+        Godot.Tools.GodotEditorSpatialGizmo
+        Godot.Tools.GodotScriptCreateDialog
+        Godot.Tools.GodotScriptEditor
+    build-tools: c2hs -any
+    hs-source-dirs: src
+    other-modules:
+        Paths_godot_haskell
+    autogen-modules:
+        Paths_godot_haskell
+    default-language: Haskell2010
+    default-extensions: FlexibleContexts FlexibleInstances
+                        ScopedTypeVariables TypeApplications StandaloneDeriving
+                        DerivingStrategies DefaultSignatures MultiParamTypeClasses
+                        FunctionalDependencies TypeFamilies TemplateHaskell TypeOperators
+                        TypeInType QuasiQuotes OverloadedStrings PatternSynonyms
+                        GeneralizedNewtypeDeriving
+    include-dirs: godot_headers cbits
+    build-depends:
+        aeson <1.5,
+        base ==4.12.*,
+        bytestring <0.11,
+        casing <0.2,
+        colour <2.4,
+        containers <0.7,
+        generate -any,
+        lens <4.18,
+        linear <1.21,
+        mtl <2.3,
+        stm <2.6,
+        template-haskell <2.15,
+        text <1.3,
+        unordered-containers <0.3,
+        vector <0.13
+
+library generate
+    exposed-modules:
+        Generate
+        Spec
+        Types
+        Types.Internal
+    hs-source-dirs: src-generate
+    other-modules:
+        Paths_godot_haskell
+    default-language: Haskell2010
+    default-extensions: FlexibleContexts FlexibleInstances
+                        ScopedTypeVariables TypeApplications StandaloneDeriving
+                        DerivingStrategies DefaultSignatures MultiParamTypeClasses
+                        FunctionalDependencies TypeFamilies TemplateHaskell TypeOperators
+                        TypeInType QuasiQuotes OverloadedStrings PatternSynonyms
+                        GeneralizedNewtypeDeriving
+    build-depends:
+        aeson <1.5,
+        ansi-wl-pprint <0.7,
+        base ==4.12.*,
+        bytestring <0.11,
+        casing <0.2,
+        containers <0.7,
+        lens <4.18,
+        mtl <2.3,
+        parsec <3.2,
+        parsers <0.13,
+        stm <2.6,
+        template-haskell <2.15,
+        text <1.3,
+        unordered-containers <0.3,
+        vector <0.13
diff --git a/godot_headers/android/godot_android.h b/godot_headers/android/godot_android.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/android/godot_android.h
@@ -0,0 +1,54 @@
+/*************************************************************************/
+/*  godot_android.h                                                      */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_ANDROID_GDN_H
+#define GODOT_ANDROID_GDN_H
+
+#include <gdnative/gdnative.h>
+
+#ifdef __ANDROID__
+#include <jni.h>
+#else
+#define JNIEnv void
+#define jobject void *
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+JNIEnv *GDAPI godot_android_get_env();
+jobject GDAPI godot_android_get_activity();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !GODOT_ANDROID_GDN_H */
diff --git a/godot_headers/api.json b/godot_headers/api.json
new file mode 100644
# file too large to diff: godot_headers/api.json
diff --git a/godot_headers/arvr/godot_arvr.h b/godot_headers/arvr/godot_arvr.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/arvr/godot_arvr.h
@@ -0,0 +1,88 @@
+/*************************************************************************/
+/*  godot_arvr.h                                                         */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_NATIVEARVR_H
+#define GODOT_NATIVEARVR_H
+
+#include <gdnative/gdnative.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// For future versions of the API we should only add new functions at the end of the structure and use the
+// version info to detect whether a call is available
+
+// Use these to populate version in your plugin
+#define GODOTVR_API_MAJOR 1
+#define GODOTVR_API_MINOR 0
+
+typedef struct {
+	godot_gdnative_api_version version; /* version of our API */
+	void *(*constructor)(godot_object *);
+	void (*destructor)(void *);
+	godot_string (*get_name)(const void *);
+	godot_int (*get_capabilities)(const void *);
+	godot_bool (*get_anchor_detection_is_enabled)(const void *);
+	void (*set_anchor_detection_is_enabled)(void *, godot_bool);
+	godot_bool (*is_stereo)(const void *);
+	godot_bool (*is_initialized)(const void *);
+	godot_bool (*initialize)(void *);
+	void (*uninitialize)(void *);
+	godot_vector2 (*get_render_targetsize)(const void *);
+	godot_transform (*get_transform_for_eye)(void *, godot_int, godot_transform *);
+	void (*fill_projection_for_eye)(void *, godot_real *, godot_int, godot_real, godot_real, godot_real);
+	void (*commit_for_eye)(void *, godot_int, godot_rid *, godot_rect2 *);
+	void (*process)(void *);
+} godot_arvr_interface_gdnative;
+
+void GDAPI godot_arvr_register_interface(const godot_arvr_interface_gdnative *p_interface);
+
+// helper functions to access ARVRServer data
+godot_real GDAPI godot_arvr_get_worldscale();
+godot_transform GDAPI godot_arvr_get_reference_frame();
+
+// helper functions for rendering
+void GDAPI godot_arvr_blit(godot_int p_eye, godot_rid *p_render_target, godot_rect2 *p_rect);
+godot_int GDAPI godot_arvr_get_texid(godot_rid *p_render_target);
+
+// helper functions for updating ARVR controllers
+godot_int GDAPI godot_arvr_add_controller(char *p_device_name, godot_int p_hand, godot_bool p_tracks_orientation, godot_bool p_tracks_position);
+void GDAPI godot_arvr_remove_controller(godot_int p_controller_id);
+void GDAPI godot_arvr_set_controller_transform(godot_int p_controller_id, godot_transform *p_transform, godot_bool p_tracks_orientation, godot_bool p_tracks_position);
+void GDAPI godot_arvr_set_controller_button(godot_int p_controller_id, godot_int p_button, godot_bool p_is_pressed);
+void GDAPI godot_arvr_set_controller_axis(godot_int p_controller_id, godot_int p_axis, godot_real p_value, godot_bool p_can_be_negative);
+godot_real GDAPI godot_arvr_get_controller_rumble(godot_int p_controller_id);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !GODOT_NATIVEARVR_H */
diff --git a/godot_headers/gdnative/aabb.h b/godot_headers/gdnative/aabb.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/aabb.h
@@ -0,0 +1,118 @@
+/*************************************************************************/
+/*  aabb.h                                                               */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_AABB_H
+#define GODOT_AABB_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_AABB_SIZE 24
+
+#ifndef GODOT_CORE_API_GODOT_AABB_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_AABB_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_AABB_SIZE];
+} godot_aabb;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/gdnative.h>
+#include <gdnative/plane.h>
+#include <gdnative/vector3.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_aabb_new(godot_aabb *r_dest, const godot_vector3 *p_pos, const godot_vector3 *p_size);
+
+godot_vector3 GDAPI godot_aabb_get_position(const godot_aabb *p_self);
+void GDAPI godot_aabb_set_position(const godot_aabb *p_self, const godot_vector3 *p_v);
+
+godot_vector3 GDAPI godot_aabb_get_size(const godot_aabb *p_self);
+void GDAPI godot_aabb_set_size(const godot_aabb *p_self, const godot_vector3 *p_v);
+
+godot_string GDAPI godot_aabb_as_string(const godot_aabb *p_self);
+
+godot_real GDAPI godot_aabb_get_area(const godot_aabb *p_self);
+
+godot_bool GDAPI godot_aabb_has_no_area(const godot_aabb *p_self);
+
+godot_bool GDAPI godot_aabb_has_no_surface(const godot_aabb *p_self);
+
+godot_bool GDAPI godot_aabb_intersects(const godot_aabb *p_self, const godot_aabb *p_with);
+
+godot_bool GDAPI godot_aabb_encloses(const godot_aabb *p_self, const godot_aabb *p_with);
+
+godot_aabb GDAPI godot_aabb_merge(const godot_aabb *p_self, const godot_aabb *p_with);
+
+godot_aabb GDAPI godot_aabb_intersection(const godot_aabb *p_self, const godot_aabb *p_with);
+
+godot_bool GDAPI godot_aabb_intersects_plane(const godot_aabb *p_self, const godot_plane *p_plane);
+
+godot_bool GDAPI godot_aabb_intersects_segment(const godot_aabb *p_self, const godot_vector3 *p_from, const godot_vector3 *p_to);
+
+godot_bool GDAPI godot_aabb_has_point(const godot_aabb *p_self, const godot_vector3 *p_point);
+
+godot_vector3 GDAPI godot_aabb_get_support(const godot_aabb *p_self, const godot_vector3 *p_dir);
+
+godot_vector3 GDAPI godot_aabb_get_longest_axis(const godot_aabb *p_self);
+
+godot_int GDAPI godot_aabb_get_longest_axis_index(const godot_aabb *p_self);
+
+godot_real GDAPI godot_aabb_get_longest_axis_size(const godot_aabb *p_self);
+
+godot_vector3 GDAPI godot_aabb_get_shortest_axis(const godot_aabb *p_self);
+
+godot_int GDAPI godot_aabb_get_shortest_axis_index(const godot_aabb *p_self);
+
+godot_real GDAPI godot_aabb_get_shortest_axis_size(const godot_aabb *p_self);
+
+godot_aabb GDAPI godot_aabb_expand(const godot_aabb *p_self, const godot_vector3 *p_to_point);
+
+godot_aabb GDAPI godot_aabb_grow(const godot_aabb *p_self, const godot_real p_by);
+
+godot_vector3 GDAPI godot_aabb_get_endpoint(const godot_aabb *p_self, const godot_int p_idx);
+
+godot_bool GDAPI godot_aabb_operator_equal(const godot_aabb *p_self, const godot_aabb *p_b);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_AABB_H
diff --git a/godot_headers/gdnative/array.h b/godot_headers/gdnative/array.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/array.h
@@ -0,0 +1,145 @@
+/*************************************************************************/
+/*  array.h                                                              */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_ARRAY_H
+#define GODOT_ARRAY_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_ARRAY_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_ARRAY_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_ARRAY_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_ARRAY_SIZE];
+} godot_array;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/pool_arrays.h>
+#include <gdnative/variant.h>
+
+#include <gdnative/gdnative.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_array_new(godot_array *r_dest);
+void GDAPI godot_array_new_copy(godot_array *r_dest, const godot_array *p_src);
+void GDAPI godot_array_new_pool_color_array(godot_array *r_dest, const godot_pool_color_array *p_pca);
+void GDAPI godot_array_new_pool_vector3_array(godot_array *r_dest, const godot_pool_vector3_array *p_pv3a);
+void GDAPI godot_array_new_pool_vector2_array(godot_array *r_dest, const godot_pool_vector2_array *p_pv2a);
+void GDAPI godot_array_new_pool_string_array(godot_array *r_dest, const godot_pool_string_array *p_psa);
+void GDAPI godot_array_new_pool_real_array(godot_array *r_dest, const godot_pool_real_array *p_pra);
+void GDAPI godot_array_new_pool_int_array(godot_array *r_dest, const godot_pool_int_array *p_pia);
+void GDAPI godot_array_new_pool_byte_array(godot_array *r_dest, const godot_pool_byte_array *p_pba);
+
+void GDAPI godot_array_set(godot_array *p_self, const godot_int p_idx, const godot_variant *p_value);
+
+godot_variant GDAPI godot_array_get(const godot_array *p_self, const godot_int p_idx);
+
+godot_variant GDAPI *godot_array_operator_index(godot_array *p_self, const godot_int p_idx);
+
+const godot_variant GDAPI *godot_array_operator_index_const(const godot_array *p_self, const godot_int p_idx);
+
+void GDAPI godot_array_append(godot_array *p_self, const godot_variant *p_value);
+
+void GDAPI godot_array_clear(godot_array *p_self);
+
+godot_int GDAPI godot_array_count(const godot_array *p_self, const godot_variant *p_value);
+
+godot_bool GDAPI godot_array_empty(const godot_array *p_self);
+
+void GDAPI godot_array_erase(godot_array *p_self, const godot_variant *p_value);
+
+godot_variant GDAPI godot_array_front(const godot_array *p_self);
+
+godot_variant GDAPI godot_array_back(const godot_array *p_self);
+
+godot_int GDAPI godot_array_find(const godot_array *p_self, const godot_variant *p_what, const godot_int p_from);
+
+godot_int GDAPI godot_array_find_last(const godot_array *p_self, const godot_variant *p_what);
+
+godot_bool GDAPI godot_array_has(const godot_array *p_self, const godot_variant *p_value);
+
+godot_int GDAPI godot_array_hash(const godot_array *p_self);
+
+void GDAPI godot_array_insert(godot_array *p_self, const godot_int p_pos, const godot_variant *p_value);
+
+void GDAPI godot_array_invert(godot_array *p_self);
+
+godot_variant GDAPI godot_array_pop_back(godot_array *p_self);
+
+godot_variant GDAPI godot_array_pop_front(godot_array *p_self);
+
+void GDAPI godot_array_push_back(godot_array *p_self, const godot_variant *p_value);
+
+void GDAPI godot_array_push_front(godot_array *p_self, const godot_variant *p_value);
+
+void GDAPI godot_array_remove(godot_array *p_self, const godot_int p_idx);
+
+void GDAPI godot_array_resize(godot_array *p_self, const godot_int p_size);
+
+godot_int GDAPI godot_array_rfind(const godot_array *p_self, const godot_variant *p_what, const godot_int p_from);
+
+godot_int GDAPI godot_array_size(const godot_array *p_self);
+
+void GDAPI godot_array_sort(godot_array *p_self);
+
+void GDAPI godot_array_sort_custom(godot_array *p_self, godot_object *p_obj, const godot_string *p_func);
+
+godot_int GDAPI godot_array_bsearch(godot_array *p_self, const godot_variant *p_value, const godot_bool p_before);
+
+godot_int GDAPI godot_array_bsearch_custom(godot_array *p_self, const godot_variant *p_value, godot_object *p_obj, const godot_string *p_func, const godot_bool p_before);
+
+void GDAPI godot_array_destroy(godot_array *p_self);
+
+godot_array GDAPI godot_array_duplicate(const godot_array *p_self, const godot_bool p_deep);
+
+godot_variant GDAPI godot_array_max(const godot_array *p_self);
+
+godot_variant GDAPI godot_array_min(const godot_array *p_self);
+
+void GDAPI godot_array_shuffle(godot_array *p_self);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_ARRAY_H
diff --git a/godot_headers/gdnative/basis.h b/godot_headers/gdnative/basis.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/basis.h
@@ -0,0 +1,136 @@
+/*************************************************************************/
+/*  basis.h                                                              */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_BASIS_H
+#define GODOT_BASIS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_BASIS_SIZE 36
+
+#ifndef GODOT_CORE_API_GODOT_BASIS_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_BASIS_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_BASIS_SIZE];
+} godot_basis;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/gdnative.h>
+#include <gdnative/quat.h>
+#include <gdnative/vector3.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_basis_new_with_rows(godot_basis *r_dest, const godot_vector3 *p_x_axis, const godot_vector3 *p_y_axis, const godot_vector3 *p_z_axis);
+void GDAPI godot_basis_new_with_axis_and_angle(godot_basis *r_dest, const godot_vector3 *p_axis, const godot_real p_phi);
+void GDAPI godot_basis_new_with_euler(godot_basis *r_dest, const godot_vector3 *p_euler);
+void GDAPI godot_basis_new_with_euler_quat(godot_basis *r_dest, const godot_quat *p_euler);
+
+godot_string GDAPI godot_basis_as_string(const godot_basis *p_self);
+
+godot_basis GDAPI godot_basis_inverse(const godot_basis *p_self);
+
+godot_basis GDAPI godot_basis_transposed(const godot_basis *p_self);
+
+godot_basis GDAPI godot_basis_orthonormalized(const godot_basis *p_self);
+
+godot_real GDAPI godot_basis_determinant(const godot_basis *p_self);
+
+godot_basis GDAPI godot_basis_rotated(const godot_basis *p_self, const godot_vector3 *p_axis, const godot_real p_phi);
+
+godot_basis GDAPI godot_basis_scaled(const godot_basis *p_self, const godot_vector3 *p_scale);
+
+godot_vector3 GDAPI godot_basis_get_scale(const godot_basis *p_self);
+
+godot_vector3 GDAPI godot_basis_get_euler(const godot_basis *p_self);
+
+godot_quat GDAPI godot_basis_get_quat(const godot_basis *p_self);
+
+void GDAPI godot_basis_set_quat(godot_basis *p_self, const godot_quat *p_quat);
+
+void GDAPI godot_basis_set_axis_angle_scale(godot_basis *p_self, const godot_vector3 *p_axis, godot_real p_phi, const godot_vector3 *p_scale);
+
+void GDAPI godot_basis_set_euler_scale(godot_basis *p_self, const godot_vector3 *p_euler, const godot_vector3 *p_scale);
+
+void GDAPI godot_basis_set_quat_scale(godot_basis *p_self, const godot_quat *p_quat, const godot_vector3 *p_scale);
+
+godot_real GDAPI godot_basis_tdotx(const godot_basis *p_self, const godot_vector3 *p_with);
+
+godot_real GDAPI godot_basis_tdoty(const godot_basis *p_self, const godot_vector3 *p_with);
+
+godot_real GDAPI godot_basis_tdotz(const godot_basis *p_self, const godot_vector3 *p_with);
+
+godot_vector3 GDAPI godot_basis_xform(const godot_basis *p_self, const godot_vector3 *p_v);
+
+godot_vector3 GDAPI godot_basis_xform_inv(const godot_basis *p_self, const godot_vector3 *p_v);
+
+godot_int GDAPI godot_basis_get_orthogonal_index(const godot_basis *p_self);
+
+void GDAPI godot_basis_new(godot_basis *r_dest);
+
+// p_elements is a pointer to an array of 3 (!!) vector3
+void GDAPI godot_basis_get_elements(const godot_basis *p_self, godot_vector3 *p_elements);
+
+godot_vector3 GDAPI godot_basis_get_axis(const godot_basis *p_self, const godot_int p_axis);
+
+void GDAPI godot_basis_set_axis(godot_basis *p_self, const godot_int p_axis, const godot_vector3 *p_value);
+
+godot_vector3 GDAPI godot_basis_get_row(const godot_basis *p_self, const godot_int p_row);
+
+void GDAPI godot_basis_set_row(godot_basis *p_self, const godot_int p_row, const godot_vector3 *p_value);
+
+godot_bool GDAPI godot_basis_operator_equal(const godot_basis *p_self, const godot_basis *p_b);
+
+godot_basis GDAPI godot_basis_operator_add(const godot_basis *p_self, const godot_basis *p_b);
+
+godot_basis GDAPI godot_basis_operator_subtract(const godot_basis *p_self, const godot_basis *p_b);
+
+godot_basis GDAPI godot_basis_operator_multiply_vector(const godot_basis *p_self, const godot_basis *p_b);
+
+godot_basis GDAPI godot_basis_operator_multiply_scalar(const godot_basis *p_self, const godot_real p_b);
+
+godot_basis GDAPI godot_basis_slerp(const godot_basis *p_self, const godot_basis *p_b, const godot_real p_t);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_BASIS_H
diff --git a/godot_headers/gdnative/color.h b/godot_headers/gdnative/color.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/color.h
@@ -0,0 +1,120 @@
+/*************************************************************************/
+/*  color.h                                                              */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_COLOR_H
+#define GODOT_COLOR_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_COLOR_SIZE 16
+
+#ifndef GODOT_CORE_API_GODOT_COLOR_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_COLOR_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_COLOR_SIZE];
+} godot_color;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/gdnative.h>
+#include <gdnative/string.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_color_new_rgba(godot_color *r_dest, const godot_real p_r, const godot_real p_g, const godot_real p_b, const godot_real p_a);
+void GDAPI godot_color_new_rgb(godot_color *r_dest, const godot_real p_r, const godot_real p_g, const godot_real p_b);
+
+godot_real godot_color_get_r(const godot_color *p_self);
+void godot_color_set_r(godot_color *p_self, const godot_real r);
+
+godot_real godot_color_get_g(const godot_color *p_self);
+void godot_color_set_g(godot_color *p_self, const godot_real g);
+
+godot_real godot_color_get_b(const godot_color *p_self);
+void godot_color_set_b(godot_color *p_self, const godot_real b);
+
+godot_real godot_color_get_a(const godot_color *p_self);
+void godot_color_set_a(godot_color *p_self, const godot_real a);
+
+godot_real godot_color_get_h(const godot_color *p_self);
+godot_real godot_color_get_s(const godot_color *p_self);
+godot_real godot_color_get_v(const godot_color *p_self);
+
+godot_string GDAPI godot_color_as_string(const godot_color *p_self);
+
+godot_int GDAPI godot_color_to_rgba32(const godot_color *p_self);
+
+godot_int GDAPI godot_color_to_abgr32(const godot_color *p_self);
+
+godot_int GDAPI godot_color_to_abgr64(const godot_color *p_self);
+
+godot_int GDAPI godot_color_to_argb64(const godot_color *p_self);
+
+godot_int GDAPI godot_color_to_rgba64(const godot_color *p_self);
+
+godot_int GDAPI godot_color_to_argb32(const godot_color *p_self);
+
+godot_real GDAPI godot_color_gray(const godot_color *p_self);
+
+godot_color GDAPI godot_color_inverted(const godot_color *p_self);
+
+godot_color GDAPI godot_color_contrasted(const godot_color *p_self);
+
+godot_color GDAPI godot_color_linear_interpolate(const godot_color *p_self, const godot_color *p_b, const godot_real p_t);
+
+godot_color GDAPI godot_color_blend(const godot_color *p_self, const godot_color *p_over);
+
+godot_color GDAPI godot_color_darkened(const godot_color *p_self, const godot_real p_amount);
+
+godot_color GDAPI godot_color_from_hsv(const godot_color *p_self, const godot_real p_h, const godot_real p_s, const godot_real p_v, const godot_real p_a);
+
+godot_color GDAPI godot_color_lightened(const godot_color *p_self, const godot_real p_amount);
+
+godot_string GDAPI godot_color_to_html(const godot_color *p_self, const godot_bool p_with_alpha);
+
+godot_bool GDAPI godot_color_operator_equal(const godot_color *p_self, const godot_color *p_b);
+
+godot_bool GDAPI godot_color_operator_less(const godot_color *p_self, const godot_color *p_b);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_COLOR_H
diff --git a/godot_headers/gdnative/dictionary.h b/godot_headers/gdnative/dictionary.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/dictionary.h
@@ -0,0 +1,103 @@
+/*************************************************************************/
+/*  dictionary.h                                                         */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_DICTIONARY_H
+#define GODOT_DICTIONARY_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_DICTIONARY_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_DICTIONARY_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_DICTIONARY_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_DICTIONARY_SIZE];
+} godot_dictionary;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/array.h>
+#include <gdnative/gdnative.h>
+#include <gdnative/variant.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_dictionary_new(godot_dictionary *r_dest);
+void GDAPI godot_dictionary_new_copy(godot_dictionary *r_dest, const godot_dictionary *p_src);
+void GDAPI godot_dictionary_destroy(godot_dictionary *p_self);
+
+godot_int GDAPI godot_dictionary_size(const godot_dictionary *p_self);
+
+godot_bool GDAPI godot_dictionary_empty(const godot_dictionary *p_self);
+
+void GDAPI godot_dictionary_clear(godot_dictionary *p_self);
+
+godot_bool GDAPI godot_dictionary_has(const godot_dictionary *p_self, const godot_variant *p_key);
+
+godot_bool GDAPI godot_dictionary_has_all(const godot_dictionary *p_self, const godot_array *p_keys);
+
+void GDAPI godot_dictionary_erase(godot_dictionary *p_self, const godot_variant *p_key);
+
+godot_int GDAPI godot_dictionary_hash(const godot_dictionary *p_self);
+
+godot_array GDAPI godot_dictionary_keys(const godot_dictionary *p_self);
+
+godot_array GDAPI godot_dictionary_values(const godot_dictionary *p_self);
+
+godot_variant GDAPI godot_dictionary_get(const godot_dictionary *p_self, const godot_variant *p_key);
+void GDAPI godot_dictionary_set(godot_dictionary *p_self, const godot_variant *p_key, const godot_variant *p_value);
+
+godot_variant GDAPI *godot_dictionary_operator_index(godot_dictionary *p_self, const godot_variant *p_key);
+
+const godot_variant GDAPI *godot_dictionary_operator_index_const(const godot_dictionary *p_self, const godot_variant *p_key);
+
+godot_variant GDAPI *godot_dictionary_next(const godot_dictionary *p_self, const godot_variant *p_key);
+
+godot_bool GDAPI godot_dictionary_operator_equal(const godot_dictionary *p_self, const godot_dictionary *p_b);
+
+godot_string GDAPI godot_dictionary_to_json(const godot_dictionary *p_self);
+
+godot_bool GDAPI godot_dictionary_erase_with_return(godot_dictionary *p_self, const godot_variant *p_key);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_DICTIONARY_H
diff --git a/godot_headers/gdnative/gdnative.h b/godot_headers/gdnative/gdnative.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/gdnative.h
@@ -0,0 +1,293 @@
+/*************************************************************************/
+/*  gdnative.h                                                           */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_GDNATIVE_H
+#define GODOT_GDNATIVE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(_WIN32) || defined(__ANDROID__)
+#define GDCALLINGCONV
+#define GDAPI GDCALLINGCONV
+#elif defined(__APPLE__)
+#include "TargetConditionals.h"
+#if TARGET_OS_IPHONE
+#define GDCALLINGCONV __attribute__((visibility("default")))
+#define GDAPI GDCALLINGCONV
+#elif TARGET_OS_MAC
+#define GDCALLINGCONV __attribute__((sysv_abi))
+#define GDAPI GDCALLINGCONV
+#endif
+#else // !_WIN32 && !__APPLE__
+#define GDCALLINGCONV __attribute__((sysv_abi))
+#define GDAPI GDCALLINGCONV
+#endif
+
+// This is for libraries *using* the header, NOT GODOT EXPOSING STUFF!!
+#ifdef _WIN32
+#define GDN_EXPORT __declspec(dllexport)
+#else
+#define GDN_EXPORT
+#endif
+
+#include <stdbool.h>
+#include <stdint.h>
+
+#define GODOT_API_VERSION 1
+
+////// Error
+
+typedef enum {
+	GODOT_OK,
+	GODOT_FAILED, ///< Generic fail error
+	GODOT_ERR_UNAVAILABLE, ///< What is requested is unsupported/unavailable
+	GODOT_ERR_UNCONFIGURED, ///< The object being used hasn't been properly set up yet
+	GODOT_ERR_UNAUTHORIZED, ///< Missing credentials for requested resource
+	GODOT_ERR_PARAMETER_RANGE_ERROR, ///< Parameter given out of range (5)
+	GODOT_ERR_OUT_OF_MEMORY, ///< Out of memory
+	GODOT_ERR_FILE_NOT_FOUND,
+	GODOT_ERR_FILE_BAD_DRIVE,
+	GODOT_ERR_FILE_BAD_PATH,
+	GODOT_ERR_FILE_NO_PERMISSION, // (10)
+	GODOT_ERR_FILE_ALREADY_IN_USE,
+	GODOT_ERR_FILE_CANT_OPEN,
+	GODOT_ERR_FILE_CANT_WRITE,
+	GODOT_ERR_FILE_CANT_READ,
+	GODOT_ERR_FILE_UNRECOGNIZED, // (15)
+	GODOT_ERR_FILE_CORRUPT,
+	GODOT_ERR_FILE_MISSING_DEPENDENCIES,
+	GODOT_ERR_FILE_EOF,
+	GODOT_ERR_CANT_OPEN, ///< Can't open a resource/socket/file
+	GODOT_ERR_CANT_CREATE, // (20)
+	GODOT_ERR_QUERY_FAILED,
+	GODOT_ERR_ALREADY_IN_USE,
+	GODOT_ERR_LOCKED, ///< resource is locked
+	GODOT_ERR_TIMEOUT,
+	GODOT_ERR_CANT_CONNECT, // (25)
+	GODOT_ERR_CANT_RESOLVE,
+	GODOT_ERR_CONNECTION_ERROR,
+	GODOT_ERR_CANT_ACQUIRE_RESOURCE,
+	GODOT_ERR_CANT_FORK,
+	GODOT_ERR_INVALID_DATA, ///< Data passed is invalid	(30)
+	GODOT_ERR_INVALID_PARAMETER, ///< Parameter passed is invalid
+	GODOT_ERR_ALREADY_EXISTS, ///< When adding, item already exists
+	GODOT_ERR_DOES_NOT_EXIST, ///< When retrieving/erasing, it item does not exist
+	GODOT_ERR_DATABASE_CANT_READ, ///< database is full
+	GODOT_ERR_DATABASE_CANT_WRITE, ///< database is full	(35)
+	GODOT_ERR_COMPILATION_FAILED,
+	GODOT_ERR_METHOD_NOT_FOUND,
+	GODOT_ERR_LINK_FAILED,
+	GODOT_ERR_SCRIPT_FAILED,
+	GODOT_ERR_CYCLIC_LINK, // (40)
+	GODOT_ERR_INVALID_DECLARATION,
+	GODOT_ERR_DUPLICATE_SYMBOL,
+	GODOT_ERR_PARSE_ERROR,
+	GODOT_ERR_BUSY,
+	GODOT_ERR_SKIP, // (45)
+	GODOT_ERR_HELP, ///< user requested help!!
+	GODOT_ERR_BUG, ///< a bug in the software certainly happened, due to a double check failing or unexpected behavior.
+	GODOT_ERR_PRINTER_ON_FIRE, /// the parallel port printer is engulfed in flames
+} godot_error;
+
+////// bool
+
+typedef bool godot_bool;
+
+#define GODOT_TRUE 1
+#define GODOT_FALSE 0
+
+/////// int
+
+typedef int godot_int;
+
+/////// real
+
+typedef float godot_real;
+
+/////// Object (forward declared)
+typedef void godot_object;
+
+/////// String
+
+#include <gdnative/string.h>
+
+/////// String name
+
+#include <gdnative/string_name.h>
+
+////// Vector2
+
+#include <gdnative/vector2.h>
+
+////// Rect2
+
+#include <gdnative/rect2.h>
+
+////// Vector3
+
+#include <gdnative/vector3.h>
+
+////// Transform2D
+
+#include <gdnative/transform2d.h>
+
+/////// Plane
+
+#include <gdnative/plane.h>
+
+/////// Quat
+
+#include <gdnative/quat.h>
+
+/////// AABB
+
+#include <gdnative/aabb.h>
+
+/////// Basis
+
+#include <gdnative/basis.h>
+
+/////// Transform
+
+#include <gdnative/transform.h>
+
+/////// Color
+
+#include <gdnative/color.h>
+
+/////// NodePath
+
+#include <gdnative/node_path.h>
+
+/////// RID
+
+#include <gdnative/rid.h>
+
+/////// Dictionary
+
+#include <gdnative/dictionary.h>
+
+/////// Array
+
+#include <gdnative/array.h>
+
+// single API file for Pool*Array
+#include <gdnative/pool_arrays.h>
+
+void GDAPI godot_object_destroy(godot_object *p_o);
+
+////// Variant
+
+#include <gdnative/variant.h>
+
+////// Singleton API
+
+godot_object GDAPI *godot_global_get_singleton(char *p_name); // result shouldn't be freed
+
+////// MethodBind API
+
+typedef struct {
+	uint8_t _dont_touch_that[1]; // TODO
+} godot_method_bind;
+
+godot_method_bind GDAPI *godot_method_bind_get_method(const char *p_classname, const char *p_methodname);
+void GDAPI godot_method_bind_ptrcall(godot_method_bind *p_method_bind, godot_object *p_instance, const void **p_args, void *p_ret);
+godot_variant GDAPI godot_method_bind_call(godot_method_bind *p_method_bind, godot_object *p_instance, const godot_variant **p_args, const int p_arg_count, godot_variant_call_error *p_call_error);
+////// Script API
+
+typedef struct godot_gdnative_api_version {
+	unsigned int major;
+	unsigned int minor;
+} godot_gdnative_api_version;
+
+typedef struct godot_gdnative_api_struct godot_gdnative_api_struct;
+
+struct godot_gdnative_api_struct {
+	unsigned int type;
+	godot_gdnative_api_version version;
+	const godot_gdnative_api_struct *next;
+};
+
+#define GDNATIVE_VERSION_COMPATIBLE(want, have) (want.major == have.major && want.minor <= have.minor)
+
+typedef struct {
+	godot_bool in_editor;
+	uint64_t core_api_hash;
+	uint64_t editor_api_hash;
+	uint64_t no_api_hash;
+	void (*report_version_mismatch)(const godot_object *p_library, const char *p_what, godot_gdnative_api_version p_want, godot_gdnative_api_version p_have);
+	void (*report_loading_error)(const godot_object *p_library, const char *p_what);
+	godot_object *gd_native_library; // pointer to GDNativeLibrary that is being initialized
+	const struct godot_gdnative_core_api_struct *api_struct;
+	const godot_string *active_library_path;
+} godot_gdnative_init_options;
+
+typedef struct {
+	godot_bool in_editor;
+} godot_gdnative_terminate_options;
+
+// Calling convention?
+typedef godot_object *(*godot_class_constructor)();
+
+godot_class_constructor GDAPI godot_get_class_constructor(const char *p_classname);
+
+godot_dictionary GDAPI godot_get_global_constants();
+
+////// GDNative procedure types
+typedef void (*godot_gdnative_init_fn)(godot_gdnative_init_options *);
+typedef void (*godot_gdnative_terminate_fn)(godot_gdnative_terminate_options *);
+typedef godot_variant (*godot_gdnative_procedure_fn)(godot_array *);
+
+////// System Functions
+
+typedef godot_variant (*native_call_cb)(void *, godot_array *);
+void GDAPI godot_register_native_call_type(const char *p_call_type, native_call_cb p_callback);
+
+//using these will help Godot track how much memory is in use in debug mode
+void GDAPI *godot_alloc(int p_bytes);
+void GDAPI *godot_realloc(void *p_ptr, int p_bytes);
+void GDAPI godot_free(void *p_ptr);
+
+//print using Godot's error handler list
+void GDAPI godot_print_error(const char *p_description, const char *p_function, const char *p_file, int p_line);
+void GDAPI godot_print_warning(const char *p_description, const char *p_function, const char *p_file, int p_line);
+void GDAPI godot_print(const godot_string *p_message);
+
+// GDNATIVE CORE 1.0.1
+
+bool GDAPI godot_is_instance_valid(const godot_object *p_object);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_C_H
diff --git a/godot_headers/gdnative/node_path.h b/godot_headers/gdnative/node_path.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/node_path.h
@@ -0,0 +1,89 @@
+/*************************************************************************/
+/*  node_path.h                                                          */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_NODE_PATH_H
+#define GODOT_NODE_PATH_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_NODE_PATH_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_NODE_PATH_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_NODE_PATH_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_NODE_PATH_SIZE];
+} godot_node_path;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/gdnative.h>
+#include <gdnative/string.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_node_path_new(godot_node_path *r_dest, const godot_string *p_from);
+void GDAPI godot_node_path_new_copy(godot_node_path *r_dest, const godot_node_path *p_src);
+void GDAPI godot_node_path_destroy(godot_node_path *p_self);
+
+godot_string GDAPI godot_node_path_as_string(const godot_node_path *p_self);
+
+godot_bool GDAPI godot_node_path_is_absolute(const godot_node_path *p_self);
+
+godot_int GDAPI godot_node_path_get_name_count(const godot_node_path *p_self);
+
+godot_string GDAPI godot_node_path_get_name(const godot_node_path *p_self, const godot_int p_idx);
+
+godot_int GDAPI godot_node_path_get_subname_count(const godot_node_path *p_self);
+
+godot_string GDAPI godot_node_path_get_subname(const godot_node_path *p_self, const godot_int p_idx);
+
+godot_string GDAPI godot_node_path_get_concatenated_subnames(const godot_node_path *p_self);
+
+godot_bool GDAPI godot_node_path_is_empty(const godot_node_path *p_self);
+
+godot_bool GDAPI godot_node_path_operator_equal(const godot_node_path *p_self, const godot_node_path *p_b);
+
+godot_node_path godot_node_path_get_as_property_path(const godot_node_path *p_self);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_NODE_PATH_H
diff --git a/godot_headers/gdnative/plane.h b/godot_headers/gdnative/plane.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/plane.h
@@ -0,0 +1,103 @@
+/*************************************************************************/
+/*  plane.h                                                              */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_PLANE_H
+#define GODOT_PLANE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_PLANE_SIZE 16
+
+#ifndef GODOT_CORE_API_GODOT_PLANE_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_PLANE_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_PLANE_SIZE];
+} godot_plane;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/gdnative.h>
+#include <gdnative/vector3.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_plane_new_with_reals(godot_plane *r_dest, const godot_real p_a, const godot_real p_b, const godot_real p_c, const godot_real p_d);
+void GDAPI godot_plane_new_with_vectors(godot_plane *r_dest, const godot_vector3 *p_v1, const godot_vector3 *p_v2, const godot_vector3 *p_v3);
+void GDAPI godot_plane_new_with_normal(godot_plane *r_dest, const godot_vector3 *p_normal, const godot_real p_d);
+
+godot_string GDAPI godot_plane_as_string(const godot_plane *p_self);
+
+godot_plane GDAPI godot_plane_normalized(const godot_plane *p_self);
+
+godot_vector3 GDAPI godot_plane_center(const godot_plane *p_self);
+
+godot_vector3 GDAPI godot_plane_get_any_point(const godot_plane *p_self);
+
+godot_bool GDAPI godot_plane_is_point_over(const godot_plane *p_self, const godot_vector3 *p_point);
+
+godot_real GDAPI godot_plane_distance_to(const godot_plane *p_self, const godot_vector3 *p_point);
+
+godot_bool GDAPI godot_plane_has_point(const godot_plane *p_self, const godot_vector3 *p_point, const godot_real p_epsilon);
+
+godot_vector3 GDAPI godot_plane_project(const godot_plane *p_self, const godot_vector3 *p_point);
+
+godot_bool GDAPI godot_plane_intersect_3(const godot_plane *p_self, godot_vector3 *r_dest, const godot_plane *p_b, const godot_plane *p_c);
+
+godot_bool GDAPI godot_plane_intersects_ray(const godot_plane *p_self, godot_vector3 *r_dest, const godot_vector3 *p_from, const godot_vector3 *p_dir);
+
+godot_bool GDAPI godot_plane_intersects_segment(const godot_plane *p_self, godot_vector3 *r_dest, const godot_vector3 *p_begin, const godot_vector3 *p_end);
+
+godot_plane GDAPI godot_plane_operator_neg(const godot_plane *p_self);
+
+godot_bool GDAPI godot_plane_operator_equal(const godot_plane *p_self, const godot_plane *p_b);
+
+void GDAPI godot_plane_set_normal(godot_plane *p_self, const godot_vector3 *p_normal);
+
+godot_vector3 GDAPI godot_plane_get_normal(const godot_plane *p_self);
+
+godot_real GDAPI godot_plane_get_d(const godot_plane *p_self);
+
+void GDAPI godot_plane_set_d(godot_plane *p_self, const godot_real p_d);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_PLANE_H
diff --git a/godot_headers/gdnative/pool_arrays.h b/godot_headers/gdnative/pool_arrays.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/pool_arrays.h
@@ -0,0 +1,464 @@
+/*************************************************************************/
+/*  pool_arrays.h                                                        */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_POOL_ARRAYS_H
+#define GODOT_POOL_ARRAYS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+/////// Read Access
+
+#define GODOT_POOL_ARRAY_READ_ACCESS_SIZE 1
+
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_POOL_ARRAY_READ_ACCESS_SIZE];
+} godot_pool_array_read_access;
+
+typedef godot_pool_array_read_access godot_pool_byte_array_read_access;
+typedef godot_pool_array_read_access godot_pool_int_array_read_access;
+typedef godot_pool_array_read_access godot_pool_real_array_read_access;
+typedef godot_pool_array_read_access godot_pool_string_array_read_access;
+typedef godot_pool_array_read_access godot_pool_vector2_array_read_access;
+typedef godot_pool_array_read_access godot_pool_vector3_array_read_access;
+typedef godot_pool_array_read_access godot_pool_color_array_read_access;
+
+/////// Write Access
+
+#define GODOT_POOL_ARRAY_WRITE_ACCESS_SIZE 1
+
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_POOL_ARRAY_WRITE_ACCESS_SIZE];
+} godot_pool_array_write_access;
+
+typedef godot_pool_array_write_access godot_pool_byte_array_write_access;
+typedef godot_pool_array_write_access godot_pool_int_array_write_access;
+typedef godot_pool_array_write_access godot_pool_real_array_write_access;
+typedef godot_pool_array_write_access godot_pool_string_array_write_access;
+typedef godot_pool_array_write_access godot_pool_vector2_array_write_access;
+typedef godot_pool_array_write_access godot_pool_vector3_array_write_access;
+typedef godot_pool_array_write_access godot_pool_color_array_write_access;
+
+/////// PoolByteArray
+
+#define GODOT_POOL_BYTE_ARRAY_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_POOL_BYTE_ARRAY_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_POOL_BYTE_ARRAY_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_POOL_BYTE_ARRAY_SIZE];
+} godot_pool_byte_array;
+#endif
+
+/////// PoolIntArray
+
+#define GODOT_POOL_INT_ARRAY_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_POOL_INT_ARRAY_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_POOL_INT_ARRAY_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_POOL_INT_ARRAY_SIZE];
+} godot_pool_int_array;
+#endif
+
+/////// PoolRealArray
+
+#define GODOT_POOL_REAL_ARRAY_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_POOL_REAL_ARRAY_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_POOL_REAL_ARRAY_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_POOL_REAL_ARRAY_SIZE];
+} godot_pool_real_array;
+#endif
+
+/////// PoolStringArray
+
+#define GODOT_POOL_STRING_ARRAY_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_POOL_STRING_ARRAY_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_POOL_STRING_ARRAY_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_POOL_STRING_ARRAY_SIZE];
+} godot_pool_string_array;
+#endif
+
+/////// PoolVector2Array
+
+#define GODOT_POOL_VECTOR2_ARRAY_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_POOL_VECTOR2_ARRAY_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_POOL_VECTOR2_ARRAY_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_POOL_VECTOR2_ARRAY_SIZE];
+} godot_pool_vector2_array;
+#endif
+
+/////// PoolVector3Array
+
+#define GODOT_POOL_VECTOR3_ARRAY_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_POOL_VECTOR3_ARRAY_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_POOL_VECTOR3_ARRAY_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_POOL_VECTOR3_ARRAY_SIZE];
+} godot_pool_vector3_array;
+#endif
+
+/////// PoolColorArray
+
+#define GODOT_POOL_COLOR_ARRAY_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_POOL_COLOR_ARRAY_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_POOL_COLOR_ARRAY_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_POOL_COLOR_ARRAY_SIZE];
+} godot_pool_color_array;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/array.h>
+#include <gdnative/color.h>
+#include <gdnative/vector2.h>
+#include <gdnative/vector3.h>
+
+#include <gdnative/gdnative.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// byte
+
+void GDAPI godot_pool_byte_array_new(godot_pool_byte_array *r_dest);
+void GDAPI godot_pool_byte_array_new_copy(godot_pool_byte_array *r_dest, const godot_pool_byte_array *p_src);
+void GDAPI godot_pool_byte_array_new_with_array(godot_pool_byte_array *r_dest, const godot_array *p_a);
+
+void GDAPI godot_pool_byte_array_append(godot_pool_byte_array *p_self, const uint8_t p_data);
+
+void GDAPI godot_pool_byte_array_append_array(godot_pool_byte_array *p_self, const godot_pool_byte_array *p_array);
+
+godot_error GDAPI godot_pool_byte_array_insert(godot_pool_byte_array *p_self, const godot_int p_idx, const uint8_t p_data);
+
+void GDAPI godot_pool_byte_array_invert(godot_pool_byte_array *p_self);
+
+void GDAPI godot_pool_byte_array_push_back(godot_pool_byte_array *p_self, const uint8_t p_data);
+
+void GDAPI godot_pool_byte_array_remove(godot_pool_byte_array *p_self, const godot_int p_idx);
+
+void GDAPI godot_pool_byte_array_resize(godot_pool_byte_array *p_self, const godot_int p_size);
+
+godot_pool_byte_array_read_access GDAPI *godot_pool_byte_array_read(const godot_pool_byte_array *p_self);
+
+godot_pool_byte_array_write_access GDAPI *godot_pool_byte_array_write(godot_pool_byte_array *p_self);
+
+void GDAPI godot_pool_byte_array_set(godot_pool_byte_array *p_self, const godot_int p_idx, const uint8_t p_data);
+uint8_t GDAPI godot_pool_byte_array_get(const godot_pool_byte_array *p_self, const godot_int p_idx);
+
+godot_int GDAPI godot_pool_byte_array_size(const godot_pool_byte_array *p_self);
+
+void GDAPI godot_pool_byte_array_destroy(godot_pool_byte_array *p_self);
+
+// int
+
+void GDAPI godot_pool_int_array_new(godot_pool_int_array *r_dest);
+void GDAPI godot_pool_int_array_new_copy(godot_pool_int_array *r_dest, const godot_pool_int_array *p_src);
+void GDAPI godot_pool_int_array_new_with_array(godot_pool_int_array *r_dest, const godot_array *p_a);
+
+void GDAPI godot_pool_int_array_append(godot_pool_int_array *p_self, const godot_int p_data);
+
+void GDAPI godot_pool_int_array_append_array(godot_pool_int_array *p_self, const godot_pool_int_array *p_array);
+
+godot_error GDAPI godot_pool_int_array_insert(godot_pool_int_array *p_self, const godot_int p_idx, const godot_int p_data);
+
+void GDAPI godot_pool_int_array_invert(godot_pool_int_array *p_self);
+
+void GDAPI godot_pool_int_array_push_back(godot_pool_int_array *p_self, const godot_int p_data);
+
+void GDAPI godot_pool_int_array_remove(godot_pool_int_array *p_self, const godot_int p_idx);
+
+void GDAPI godot_pool_int_array_resize(godot_pool_int_array *p_self, const godot_int p_size);
+
+godot_pool_int_array_read_access GDAPI *godot_pool_int_array_read(const godot_pool_int_array *p_self);
+
+godot_pool_int_array_write_access GDAPI *godot_pool_int_array_write(godot_pool_int_array *p_self);
+
+void GDAPI godot_pool_int_array_set(godot_pool_int_array *p_self, const godot_int p_idx, const godot_int p_data);
+godot_int GDAPI godot_pool_int_array_get(const godot_pool_int_array *p_self, const godot_int p_idx);
+
+godot_int GDAPI godot_pool_int_array_size(const godot_pool_int_array *p_self);
+
+void GDAPI godot_pool_int_array_destroy(godot_pool_int_array *p_self);
+
+// real
+
+void GDAPI godot_pool_real_array_new(godot_pool_real_array *r_dest);
+void GDAPI godot_pool_real_array_new_copy(godot_pool_real_array *r_dest, const godot_pool_real_array *p_src);
+void GDAPI godot_pool_real_array_new_with_array(godot_pool_real_array *r_dest, const godot_array *p_a);
+
+void GDAPI godot_pool_real_array_append(godot_pool_real_array *p_self, const godot_real p_data);
+
+void GDAPI godot_pool_real_array_append_array(godot_pool_real_array *p_self, const godot_pool_real_array *p_array);
+
+godot_error GDAPI godot_pool_real_array_insert(godot_pool_real_array *p_self, const godot_int p_idx, const godot_real p_data);
+
+void GDAPI godot_pool_real_array_invert(godot_pool_real_array *p_self);
+
+void GDAPI godot_pool_real_array_push_back(godot_pool_real_array *p_self, const godot_real p_data);
+
+void GDAPI godot_pool_real_array_remove(godot_pool_real_array *p_self, const godot_int p_idx);
+
+void GDAPI godot_pool_real_array_resize(godot_pool_real_array *p_self, const godot_int p_size);
+
+godot_pool_real_array_read_access GDAPI *godot_pool_real_array_read(const godot_pool_real_array *p_self);
+
+godot_pool_real_array_write_access GDAPI *godot_pool_real_array_write(godot_pool_real_array *p_self);
+
+void GDAPI godot_pool_real_array_set(godot_pool_real_array *p_self, const godot_int p_idx, const godot_real p_data);
+godot_real GDAPI godot_pool_real_array_get(const godot_pool_real_array *p_self, const godot_int p_idx);
+
+godot_int GDAPI godot_pool_real_array_size(const godot_pool_real_array *p_self);
+
+void GDAPI godot_pool_real_array_destroy(godot_pool_real_array *p_self);
+
+// string
+
+void GDAPI godot_pool_string_array_new(godot_pool_string_array *r_dest);
+void GDAPI godot_pool_string_array_new_copy(godot_pool_string_array *r_dest, const godot_pool_string_array *p_src);
+void GDAPI godot_pool_string_array_new_with_array(godot_pool_string_array *r_dest, const godot_array *p_a);
+
+void GDAPI godot_pool_string_array_append(godot_pool_string_array *p_self, const godot_string *p_data);
+
+void GDAPI godot_pool_string_array_append_array(godot_pool_string_array *p_self, const godot_pool_string_array *p_array);
+
+godot_error GDAPI godot_pool_string_array_insert(godot_pool_string_array *p_self, const godot_int p_idx, const godot_string *p_data);
+
+void GDAPI godot_pool_string_array_invert(godot_pool_string_array *p_self);
+
+void GDAPI godot_pool_string_array_push_back(godot_pool_string_array *p_self, const godot_string *p_data);
+
+void GDAPI godot_pool_string_array_remove(godot_pool_string_array *p_self, const godot_int p_idx);
+
+void GDAPI godot_pool_string_array_resize(godot_pool_string_array *p_self, const godot_int p_size);
+
+godot_pool_string_array_read_access GDAPI *godot_pool_string_array_read(const godot_pool_string_array *p_self);
+
+godot_pool_string_array_write_access GDAPI *godot_pool_string_array_write(godot_pool_string_array *p_self);
+
+void GDAPI godot_pool_string_array_set(godot_pool_string_array *p_self, const godot_int p_idx, const godot_string *p_data);
+godot_string GDAPI godot_pool_string_array_get(const godot_pool_string_array *p_self, const godot_int p_idx);
+
+godot_int GDAPI godot_pool_string_array_size(const godot_pool_string_array *p_self);
+
+void GDAPI godot_pool_string_array_destroy(godot_pool_string_array *p_self);
+
+// vector2
+
+void GDAPI godot_pool_vector2_array_new(godot_pool_vector2_array *r_dest);
+void GDAPI godot_pool_vector2_array_new_copy(godot_pool_vector2_array *r_dest, const godot_pool_vector2_array *p_src);
+void GDAPI godot_pool_vector2_array_new_with_array(godot_pool_vector2_array *r_dest, const godot_array *p_a);
+
+void GDAPI godot_pool_vector2_array_append(godot_pool_vector2_array *p_self, const godot_vector2 *p_data);
+
+void GDAPI godot_pool_vector2_array_append_array(godot_pool_vector2_array *p_self, const godot_pool_vector2_array *p_array);
+
+godot_error GDAPI godot_pool_vector2_array_insert(godot_pool_vector2_array *p_self, const godot_int p_idx, const godot_vector2 *p_data);
+
+void GDAPI godot_pool_vector2_array_invert(godot_pool_vector2_array *p_self);
+
+void GDAPI godot_pool_vector2_array_push_back(godot_pool_vector2_array *p_self, const godot_vector2 *p_data);
+
+void GDAPI godot_pool_vector2_array_remove(godot_pool_vector2_array *p_self, const godot_int p_idx);
+
+void GDAPI godot_pool_vector2_array_resize(godot_pool_vector2_array *p_self, const godot_int p_size);
+
+godot_pool_vector2_array_read_access GDAPI *godot_pool_vector2_array_read(const godot_pool_vector2_array *p_self);
+
+godot_pool_vector2_array_write_access GDAPI *godot_pool_vector2_array_write(godot_pool_vector2_array *p_self);
+
+void GDAPI godot_pool_vector2_array_set(godot_pool_vector2_array *p_self, const godot_int p_idx, const godot_vector2 *p_data);
+godot_vector2 GDAPI godot_pool_vector2_array_get(const godot_pool_vector2_array *p_self, const godot_int p_idx);
+
+godot_int GDAPI godot_pool_vector2_array_size(const godot_pool_vector2_array *p_self);
+
+void GDAPI godot_pool_vector2_array_destroy(godot_pool_vector2_array *p_self);
+
+// vector3
+
+void GDAPI godot_pool_vector3_array_new(godot_pool_vector3_array *r_dest);
+void GDAPI godot_pool_vector3_array_new_copy(godot_pool_vector3_array *r_dest, const godot_pool_vector3_array *p_src);
+void GDAPI godot_pool_vector3_array_new_with_array(godot_pool_vector3_array *r_dest, const godot_array *p_a);
+
+void GDAPI godot_pool_vector3_array_append(godot_pool_vector3_array *p_self, const godot_vector3 *p_data);
+
+void GDAPI godot_pool_vector3_array_append_array(godot_pool_vector3_array *p_self, const godot_pool_vector3_array *p_array);
+
+godot_error GDAPI godot_pool_vector3_array_insert(godot_pool_vector3_array *p_self, const godot_int p_idx, const godot_vector3 *p_data);
+
+void GDAPI godot_pool_vector3_array_invert(godot_pool_vector3_array *p_self);
+
+void GDAPI godot_pool_vector3_array_push_back(godot_pool_vector3_array *p_self, const godot_vector3 *p_data);
+
+void GDAPI godot_pool_vector3_array_remove(godot_pool_vector3_array *p_self, const godot_int p_idx);
+
+void GDAPI godot_pool_vector3_array_resize(godot_pool_vector3_array *p_self, const godot_int p_size);
+
+godot_pool_vector3_array_read_access GDAPI *godot_pool_vector3_array_read(const godot_pool_vector3_array *p_self);
+
+godot_pool_vector3_array_write_access GDAPI *godot_pool_vector3_array_write(godot_pool_vector3_array *p_self);
+
+void GDAPI godot_pool_vector3_array_set(godot_pool_vector3_array *p_self, const godot_int p_idx, const godot_vector3 *p_data);
+godot_vector3 GDAPI godot_pool_vector3_array_get(const godot_pool_vector3_array *p_self, const godot_int p_idx);
+
+godot_int GDAPI godot_pool_vector3_array_size(const godot_pool_vector3_array *p_self);
+
+void GDAPI godot_pool_vector3_array_destroy(godot_pool_vector3_array *p_self);
+
+// color
+
+void GDAPI godot_pool_color_array_new(godot_pool_color_array *r_dest);
+void GDAPI godot_pool_color_array_new_copy(godot_pool_color_array *r_dest, const godot_pool_color_array *p_src);
+void GDAPI godot_pool_color_array_new_with_array(godot_pool_color_array *r_dest, const godot_array *p_a);
+
+void GDAPI godot_pool_color_array_append(godot_pool_color_array *p_self, const godot_color *p_data);
+
+void GDAPI godot_pool_color_array_append_array(godot_pool_color_array *p_self, const godot_pool_color_array *p_array);
+
+godot_error GDAPI godot_pool_color_array_insert(godot_pool_color_array *p_self, const godot_int p_idx, const godot_color *p_data);
+
+void GDAPI godot_pool_color_array_invert(godot_pool_color_array *p_self);
+
+void GDAPI godot_pool_color_array_push_back(godot_pool_color_array *p_self, const godot_color *p_data);
+
+void GDAPI godot_pool_color_array_remove(godot_pool_color_array *p_self, const godot_int p_idx);
+
+void GDAPI godot_pool_color_array_resize(godot_pool_color_array *p_self, const godot_int p_size);
+
+godot_pool_color_array_read_access GDAPI *godot_pool_color_array_read(const godot_pool_color_array *p_self);
+
+godot_pool_color_array_write_access GDAPI *godot_pool_color_array_write(godot_pool_color_array *p_self);
+
+void GDAPI godot_pool_color_array_set(godot_pool_color_array *p_self, const godot_int p_idx, const godot_color *p_data);
+godot_color GDAPI godot_pool_color_array_get(const godot_pool_color_array *p_self, const godot_int p_idx);
+
+godot_int GDAPI godot_pool_color_array_size(const godot_pool_color_array *p_self);
+
+void GDAPI godot_pool_color_array_destroy(godot_pool_color_array *p_self);
+
+//
+// read accessor functions
+//
+
+godot_pool_byte_array_read_access GDAPI *godot_pool_byte_array_read_access_copy(const godot_pool_byte_array_read_access *p_other);
+const uint8_t GDAPI *godot_pool_byte_array_read_access_ptr(const godot_pool_byte_array_read_access *p_read);
+void GDAPI godot_pool_byte_array_read_access_operator_assign(godot_pool_byte_array_read_access *p_read, godot_pool_byte_array_read_access *p_other);
+void GDAPI godot_pool_byte_array_read_access_destroy(godot_pool_byte_array_read_access *p_read);
+
+godot_pool_int_array_read_access GDAPI *godot_pool_int_array_read_access_copy(const godot_pool_int_array_read_access *p_other);
+const godot_int GDAPI *godot_pool_int_array_read_access_ptr(const godot_pool_int_array_read_access *p_read);
+void GDAPI godot_pool_int_array_read_access_operator_assign(godot_pool_int_array_read_access *p_read, godot_pool_int_array_read_access *p_other);
+void GDAPI godot_pool_int_array_read_access_destroy(godot_pool_int_array_read_access *p_read);
+
+godot_pool_real_array_read_access GDAPI *godot_pool_real_array_read_access_copy(const godot_pool_real_array_read_access *p_other);
+const godot_real GDAPI *godot_pool_real_array_read_access_ptr(const godot_pool_real_array_read_access *p_read);
+void GDAPI godot_pool_real_array_read_access_operator_assign(godot_pool_real_array_read_access *p_read, godot_pool_real_array_read_access *p_other);
+void GDAPI godot_pool_real_array_read_access_destroy(godot_pool_real_array_read_access *p_read);
+
+godot_pool_string_array_read_access GDAPI *godot_pool_string_array_read_access_copy(const godot_pool_string_array_read_access *p_other);
+const godot_string GDAPI *godot_pool_string_array_read_access_ptr(const godot_pool_string_array_read_access *p_read);
+void GDAPI godot_pool_string_array_read_access_operator_assign(godot_pool_string_array_read_access *p_read, godot_pool_string_array_read_access *p_other);
+void GDAPI godot_pool_string_array_read_access_destroy(godot_pool_string_array_read_access *p_read);
+
+godot_pool_vector2_array_read_access GDAPI *godot_pool_vector2_array_read_access_copy(const godot_pool_vector2_array_read_access *p_other);
+const godot_vector2 GDAPI *godot_pool_vector2_array_read_access_ptr(const godot_pool_vector2_array_read_access *p_read);
+void GDAPI godot_pool_vector2_array_read_access_operator_assign(godot_pool_vector2_array_read_access *p_read, godot_pool_vector2_array_read_access *p_other);
+void GDAPI godot_pool_vector2_array_read_access_destroy(godot_pool_vector2_array_read_access *p_read);
+
+godot_pool_vector3_array_read_access GDAPI *godot_pool_vector3_array_read_access_copy(const godot_pool_vector3_array_read_access *p_other);
+const godot_vector3 GDAPI *godot_pool_vector3_array_read_access_ptr(const godot_pool_vector3_array_read_access *p_read);
+void GDAPI godot_pool_vector3_array_read_access_operator_assign(godot_pool_vector3_array_read_access *p_read, godot_pool_vector3_array_read_access *p_other);
+void GDAPI godot_pool_vector3_array_read_access_destroy(godot_pool_vector3_array_read_access *p_read);
+
+godot_pool_color_array_read_access GDAPI *godot_pool_color_array_read_access_copy(const godot_pool_color_array_read_access *p_other);
+const godot_color GDAPI *godot_pool_color_array_read_access_ptr(const godot_pool_color_array_read_access *p_read);
+void GDAPI godot_pool_color_array_read_access_operator_assign(godot_pool_color_array_read_access *p_read, godot_pool_color_array_read_access *p_other);
+void GDAPI godot_pool_color_array_read_access_destroy(godot_pool_color_array_read_access *p_read);
+
+//
+// write accessor functions
+//
+
+godot_pool_byte_array_write_access GDAPI *godot_pool_byte_array_write_access_copy(const godot_pool_byte_array_write_access *p_other);
+uint8_t GDAPI *godot_pool_byte_array_write_access_ptr(const godot_pool_byte_array_write_access *p_write);
+void GDAPI godot_pool_byte_array_write_access_operator_assign(godot_pool_byte_array_write_access *p_write, godot_pool_byte_array_write_access *p_other);
+void GDAPI godot_pool_byte_array_write_access_destroy(godot_pool_byte_array_write_access *p_write);
+
+godot_pool_int_array_write_access GDAPI *godot_pool_int_array_write_access_copy(const godot_pool_int_array_write_access *p_other);
+godot_int GDAPI *godot_pool_int_array_write_access_ptr(const godot_pool_int_array_write_access *p_write);
+void GDAPI godot_pool_int_array_write_access_operator_assign(godot_pool_int_array_write_access *p_write, godot_pool_int_array_write_access *p_other);
+void GDAPI godot_pool_int_array_write_access_destroy(godot_pool_int_array_write_access *p_write);
+
+godot_pool_real_array_write_access GDAPI *godot_pool_real_array_write_access_copy(const godot_pool_real_array_write_access *p_other);
+godot_real GDAPI *godot_pool_real_array_write_access_ptr(const godot_pool_real_array_write_access *p_write);
+void GDAPI godot_pool_real_array_write_access_operator_assign(godot_pool_real_array_write_access *p_write, godot_pool_real_array_write_access *p_other);
+void GDAPI godot_pool_real_array_write_access_destroy(godot_pool_real_array_write_access *p_write);
+
+godot_pool_string_array_write_access GDAPI *godot_pool_string_array_write_access_copy(const godot_pool_string_array_write_access *p_other);
+godot_string GDAPI *godot_pool_string_array_write_access_ptr(const godot_pool_string_array_write_access *p_write);
+void GDAPI godot_pool_string_array_write_access_operator_assign(godot_pool_string_array_write_access *p_write, godot_pool_string_array_write_access *p_other);
+void GDAPI godot_pool_string_array_write_access_destroy(godot_pool_string_array_write_access *p_write);
+
+godot_pool_vector2_array_write_access GDAPI *godot_pool_vector2_array_write_access_copy(const godot_pool_vector2_array_write_access *p_other);
+godot_vector2 GDAPI *godot_pool_vector2_array_write_access_ptr(const godot_pool_vector2_array_write_access *p_write);
+void GDAPI godot_pool_vector2_array_write_access_operator_assign(godot_pool_vector2_array_write_access *p_write, godot_pool_vector2_array_write_access *p_other);
+void GDAPI godot_pool_vector2_array_write_access_destroy(godot_pool_vector2_array_write_access *p_write);
+
+godot_pool_vector3_array_write_access GDAPI *godot_pool_vector3_array_write_access_copy(const godot_pool_vector3_array_write_access *p_other);
+godot_vector3 GDAPI *godot_pool_vector3_array_write_access_ptr(const godot_pool_vector3_array_write_access *p_write);
+void GDAPI godot_pool_vector3_array_write_access_operator_assign(godot_pool_vector3_array_write_access *p_write, godot_pool_vector3_array_write_access *p_other);
+void GDAPI godot_pool_vector3_array_write_access_destroy(godot_pool_vector3_array_write_access *p_write);
+
+godot_pool_color_array_write_access GDAPI *godot_pool_color_array_write_access_copy(const godot_pool_color_array_write_access *p_other);
+godot_color GDAPI *godot_pool_color_array_write_access_ptr(const godot_pool_color_array_write_access *p_write);
+void GDAPI godot_pool_color_array_write_access_operator_assign(godot_pool_color_array_write_access *p_write, godot_pool_color_array_write_access *p_other);
+void GDAPI godot_pool_color_array_write_access_destroy(godot_pool_color_array_write_access *p_write);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_POOL_ARRAYS_H
diff --git a/godot_headers/gdnative/quat.h b/godot_headers/gdnative/quat.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/quat.h
@@ -0,0 +1,118 @@
+/*************************************************************************/
+/*  quat.h                                                               */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_QUAT_H
+#define GODOT_QUAT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_QUAT_SIZE 16
+
+#ifndef GODOT_CORE_API_GODOT_QUAT_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_QUAT_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_QUAT_SIZE];
+} godot_quat;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/gdnative.h>
+#include <gdnative/vector3.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_quat_new(godot_quat *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_z, const godot_real p_w);
+void GDAPI godot_quat_new_with_axis_angle(godot_quat *r_dest, const godot_vector3 *p_axis, const godot_real p_angle);
+void GDAPI godot_quat_new_with_basis(godot_quat *r_dest, const godot_basis *p_basis);
+void GDAPI godot_quat_new_with_euler(godot_quat *r_dest, const godot_vector3 *p_euler);
+
+godot_real GDAPI godot_quat_get_x(const godot_quat *p_self);
+void GDAPI godot_quat_set_x(godot_quat *p_self, const godot_real val);
+
+godot_real GDAPI godot_quat_get_y(const godot_quat *p_self);
+void GDAPI godot_quat_set_y(godot_quat *p_self, const godot_real val);
+
+godot_real GDAPI godot_quat_get_z(const godot_quat *p_self);
+void GDAPI godot_quat_set_z(godot_quat *p_self, const godot_real val);
+
+godot_real GDAPI godot_quat_get_w(const godot_quat *p_self);
+void GDAPI godot_quat_set_w(godot_quat *p_self, const godot_real val);
+
+godot_string GDAPI godot_quat_as_string(const godot_quat *p_self);
+
+godot_real GDAPI godot_quat_length(const godot_quat *p_self);
+
+godot_real GDAPI godot_quat_length_squared(const godot_quat *p_self);
+
+godot_quat GDAPI godot_quat_normalized(const godot_quat *p_self);
+
+godot_bool GDAPI godot_quat_is_normalized(const godot_quat *p_self);
+
+godot_quat GDAPI godot_quat_inverse(const godot_quat *p_self);
+
+godot_real GDAPI godot_quat_dot(const godot_quat *p_self, const godot_quat *p_b);
+
+godot_vector3 GDAPI godot_quat_xform(const godot_quat *p_self, const godot_vector3 *p_v);
+
+godot_quat GDAPI godot_quat_slerp(const godot_quat *p_self, const godot_quat *p_b, const godot_real p_t);
+
+godot_quat GDAPI godot_quat_slerpni(const godot_quat *p_self, const godot_quat *p_b, const godot_real p_t);
+
+godot_quat GDAPI godot_quat_cubic_slerp(const godot_quat *p_self, const godot_quat *p_b, const godot_quat *p_pre_a, const godot_quat *p_post_b, const godot_real p_t);
+
+godot_quat GDAPI godot_quat_operator_multiply(const godot_quat *p_self, const godot_real p_b);
+
+godot_quat GDAPI godot_quat_operator_add(const godot_quat *p_self, const godot_quat *p_b);
+
+godot_quat GDAPI godot_quat_operator_subtract(const godot_quat *p_self, const godot_quat *p_b);
+
+godot_quat GDAPI godot_quat_operator_divide(const godot_quat *p_self, const godot_real p_b);
+
+godot_bool GDAPI godot_quat_operator_equal(const godot_quat *p_self, const godot_quat *p_b);
+
+godot_quat GDAPI godot_quat_operator_neg(const godot_quat *p_self);
+
+void GDAPI godot_quat_set_axis_angle(godot_quat *p_self, const godot_vector3 *p_axis, const godot_real p_angle);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_QUAT_H
diff --git a/godot_headers/gdnative/rect2.h b/godot_headers/gdnative/rect2.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/rect2.h
@@ -0,0 +1,102 @@
+/*************************************************************************/
+/*  rect2.h                                                              */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_RECT2_H
+#define GODOT_RECT2_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#ifndef GODOT_CORE_API_GODOT_RECT2_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_RECT2_TYPE_DEFINED
+typedef struct godot_rect2 {
+	uint8_t _dont_touch_that[16];
+} godot_rect2;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/gdnative.h>
+#include <gdnative/vector2.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_rect2_new_with_position_and_size(godot_rect2 *r_dest, const godot_vector2 *p_pos, const godot_vector2 *p_size);
+void GDAPI godot_rect2_new(godot_rect2 *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_width, const godot_real p_height);
+
+godot_string GDAPI godot_rect2_as_string(const godot_rect2 *p_self);
+
+godot_real GDAPI godot_rect2_get_area(const godot_rect2 *p_self);
+
+godot_bool GDAPI godot_rect2_intersects(const godot_rect2 *p_self, const godot_rect2 *p_b);
+
+godot_bool GDAPI godot_rect2_encloses(const godot_rect2 *p_self, const godot_rect2 *p_b);
+
+godot_bool GDAPI godot_rect2_has_no_area(const godot_rect2 *p_self);
+
+godot_rect2 GDAPI godot_rect2_clip(const godot_rect2 *p_self, const godot_rect2 *p_b);
+
+godot_rect2 GDAPI godot_rect2_merge(const godot_rect2 *p_self, const godot_rect2 *p_b);
+
+godot_bool GDAPI godot_rect2_has_point(const godot_rect2 *p_self, const godot_vector2 *p_point);
+
+godot_rect2 GDAPI godot_rect2_grow(const godot_rect2 *p_self, const godot_real p_by);
+
+godot_rect2 GDAPI godot_rect2_grow_individual(const godot_rect2 *p_self, const godot_real p_left, const godot_real p_top, const godot_real p_right, const godot_real p_bottom);
+
+godot_rect2 GDAPI godot_rect2_grow_margin(const godot_rect2 *p_self, const godot_int p_margin, const godot_real p_by);
+
+godot_rect2 GDAPI godot_rect2_abs(const godot_rect2 *p_self);
+
+godot_rect2 GDAPI godot_rect2_expand(const godot_rect2 *p_self, const godot_vector2 *p_to);
+
+godot_bool GDAPI godot_rect2_operator_equal(const godot_rect2 *p_self, const godot_rect2 *p_b);
+
+godot_vector2 GDAPI godot_rect2_get_position(const godot_rect2 *p_self);
+
+godot_vector2 GDAPI godot_rect2_get_size(const godot_rect2 *p_self);
+
+void GDAPI godot_rect2_set_position(godot_rect2 *p_self, const godot_vector2 *p_pos);
+
+void GDAPI godot_rect2_set_size(godot_rect2 *p_self, const godot_vector2 *p_size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_RECT2_H
diff --git a/godot_headers/gdnative/rid.h b/godot_headers/gdnative/rid.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/rid.h
@@ -0,0 +1,74 @@
+/*************************************************************************/
+/*  rid.h                                                                */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_RID_H
+#define GODOT_RID_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_RID_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_RID_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_RID_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_RID_SIZE];
+} godot_rid;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/gdnative.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_rid_new(godot_rid *r_dest);
+
+godot_int GDAPI godot_rid_get_id(const godot_rid *p_self);
+
+void GDAPI godot_rid_new_with_resource(godot_rid *r_dest, const godot_object *p_from);
+
+godot_bool GDAPI godot_rid_operator_equal(const godot_rid *p_self, const godot_rid *p_b);
+
+godot_bool GDAPI godot_rid_operator_less(const godot_rid *p_self, const godot_rid *p_b);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_RID_H
diff --git a/godot_headers/gdnative/string.h b/godot_headers/gdnative/string.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/string.h
@@ -0,0 +1,261 @@
+/*************************************************************************/
+/*  string.h                                                             */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_STRING_H
+#define GODOT_STRING_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include <wchar.h>
+
+typedef wchar_t godot_char_type;
+
+#define GODOT_STRING_SIZE sizeof(void *)
+#define GODOT_CHAR_STRING_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_STRING_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_STRING_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_STRING_SIZE];
+} godot_string;
+
+#endif
+
+#ifndef GODOT_CORE_API_GODOT_CHAR_STRING_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_CHAR_STRING_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_CHAR_STRING_SIZE];
+} godot_char_string;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/array.h>
+#include <gdnative/gdnative.h>
+#include <gdnative/variant.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+godot_int GDAPI godot_char_string_length(const godot_char_string *p_cs);
+const char GDAPI *godot_char_string_get_data(const godot_char_string *p_cs);
+void GDAPI godot_char_string_destroy(godot_char_string *p_cs);
+
+void GDAPI godot_string_new(godot_string *r_dest);
+void GDAPI godot_string_new_copy(godot_string *r_dest, const godot_string *p_src);
+void GDAPI godot_string_new_with_wide_string(godot_string *r_dest, const wchar_t *p_contents, const int p_size);
+
+wchar_t GDAPI *godot_string_operator_index(godot_string *p_self, const godot_int p_idx);
+wchar_t GDAPI godot_string_operator_index_const(const godot_string *p_self, const godot_int p_idx);
+const wchar_t GDAPI *godot_string_wide_str(const godot_string *p_self);
+
+godot_bool GDAPI godot_string_operator_equal(const godot_string *p_self, const godot_string *p_b);
+godot_bool GDAPI godot_string_operator_less(const godot_string *p_self, const godot_string *p_b);
+godot_string GDAPI godot_string_operator_plus(const godot_string *p_self, const godot_string *p_b);
+
+/* Standard size stuff */
+
+godot_int GDAPI godot_string_length(const godot_string *p_self);
+
+/* Helpers */
+
+signed char GDAPI godot_string_casecmp_to(const godot_string *p_self, const godot_string *p_str);
+signed char GDAPI godot_string_nocasecmp_to(const godot_string *p_self, const godot_string *p_str);
+signed char GDAPI godot_string_naturalnocasecmp_to(const godot_string *p_self, const godot_string *p_str);
+
+godot_bool GDAPI godot_string_begins_with(const godot_string *p_self, const godot_string *p_string);
+godot_bool GDAPI godot_string_begins_with_char_array(const godot_string *p_self, const char *p_char_array);
+godot_array GDAPI godot_string_bigrams(const godot_string *p_self);
+godot_string GDAPI godot_string_chr(wchar_t p_character);
+godot_bool GDAPI godot_string_ends_with(const godot_string *p_self, const godot_string *p_string);
+godot_int GDAPI godot_string_find(const godot_string *p_self, godot_string p_what);
+godot_int GDAPI godot_string_find_from(const godot_string *p_self, godot_string p_what, godot_int p_from);
+godot_int GDAPI godot_string_findmk(const godot_string *p_self, const godot_array *p_keys);
+godot_int GDAPI godot_string_findmk_from(const godot_string *p_self, const godot_array *p_keys, godot_int p_from);
+godot_int GDAPI godot_string_findmk_from_in_place(const godot_string *p_self, const godot_array *p_keys, godot_int p_from, godot_int *r_key);
+godot_int GDAPI godot_string_findn(const godot_string *p_self, godot_string p_what);
+godot_int GDAPI godot_string_findn_from(const godot_string *p_self, godot_string p_what, godot_int p_from);
+godot_int GDAPI godot_string_find_last(const godot_string *p_self, godot_string p_what);
+godot_string GDAPI godot_string_format(const godot_string *p_self, const godot_variant *p_values);
+godot_string GDAPI godot_string_format_with_custom_placeholder(const godot_string *p_self, const godot_variant *p_values, const char *p_placeholder);
+godot_string GDAPI godot_string_hex_encode_buffer(const uint8_t *p_buffer, godot_int p_len);
+godot_int GDAPI godot_string_hex_to_int(const godot_string *p_self);
+godot_int GDAPI godot_string_hex_to_int_without_prefix(const godot_string *p_self);
+godot_string GDAPI godot_string_insert(const godot_string *p_self, godot_int p_at_pos, godot_string p_string);
+godot_bool GDAPI godot_string_is_numeric(const godot_string *p_self);
+godot_bool GDAPI godot_string_is_subsequence_of(const godot_string *p_self, const godot_string *p_string);
+godot_bool GDAPI godot_string_is_subsequence_ofi(const godot_string *p_self, const godot_string *p_string);
+godot_string GDAPI godot_string_lpad(const godot_string *p_self, godot_int p_min_length);
+godot_string GDAPI godot_string_lpad_with_custom_character(const godot_string *p_self, godot_int p_min_length, const godot_string *p_character);
+godot_bool GDAPI godot_string_match(const godot_string *p_self, const godot_string *p_wildcard);
+godot_bool GDAPI godot_string_matchn(const godot_string *p_self, const godot_string *p_wildcard);
+godot_string GDAPI godot_string_md5(const uint8_t *p_md5);
+godot_string GDAPI godot_string_num(double p_num);
+godot_string GDAPI godot_string_num_int64(int64_t p_num, godot_int p_base);
+godot_string GDAPI godot_string_num_int64_capitalized(int64_t p_num, godot_int p_base, godot_bool p_capitalize_hex);
+godot_string GDAPI godot_string_num_real(double p_num);
+godot_string GDAPI godot_string_num_scientific(double p_num);
+godot_string GDAPI godot_string_num_with_decimals(double p_num, godot_int p_decimals);
+godot_string GDAPI godot_string_pad_decimals(const godot_string *p_self, godot_int p_digits);
+godot_string GDAPI godot_string_pad_zeros(const godot_string *p_self, godot_int p_digits);
+godot_string GDAPI godot_string_replace_first(const godot_string *p_self, godot_string p_key, godot_string p_with);
+godot_string GDAPI godot_string_replace(const godot_string *p_self, godot_string p_key, godot_string p_with);
+godot_string GDAPI godot_string_replacen(const godot_string *p_self, godot_string p_key, godot_string p_with);
+godot_int GDAPI godot_string_rfind(const godot_string *p_self, godot_string p_what);
+godot_int GDAPI godot_string_rfindn(const godot_string *p_self, godot_string p_what);
+godot_int GDAPI godot_string_rfind_from(const godot_string *p_self, godot_string p_what, godot_int p_from);
+godot_int GDAPI godot_string_rfindn_from(const godot_string *p_self, godot_string p_what, godot_int p_from);
+godot_string GDAPI godot_string_rpad(const godot_string *p_self, godot_int p_min_length);
+godot_string GDAPI godot_string_rpad_with_custom_character(const godot_string *p_self, godot_int p_min_length, const godot_string *p_character);
+godot_real GDAPI godot_string_similarity(const godot_string *p_self, const godot_string *p_string);
+godot_string GDAPI godot_string_sprintf(const godot_string *p_self, const godot_array *p_values, godot_bool *p_error);
+godot_string GDAPI godot_string_substr(const godot_string *p_self, godot_int p_from, godot_int p_chars);
+double GDAPI godot_string_to_double(const godot_string *p_self);
+godot_real GDAPI godot_string_to_float(const godot_string *p_self);
+godot_int GDAPI godot_string_to_int(const godot_string *p_self);
+
+godot_string GDAPI godot_string_camelcase_to_underscore(const godot_string *p_self);
+godot_string GDAPI godot_string_camelcase_to_underscore_lowercased(const godot_string *p_self);
+godot_string GDAPI godot_string_capitalize(const godot_string *p_self);
+double GDAPI godot_string_char_to_double(const char *p_what);
+godot_int GDAPI godot_string_char_to_int(const char *p_what);
+int64_t GDAPI godot_string_wchar_to_int(const wchar_t *p_str);
+godot_int GDAPI godot_string_char_to_int_with_len(const char *p_what, godot_int p_len);
+int64_t GDAPI godot_string_char_to_int64_with_len(const wchar_t *p_str, int p_len);
+int64_t GDAPI godot_string_hex_to_int64(const godot_string *p_self);
+int64_t GDAPI godot_string_hex_to_int64_with_prefix(const godot_string *p_self);
+int64_t GDAPI godot_string_to_int64(const godot_string *p_self);
+double GDAPI godot_string_unicode_char_to_double(const wchar_t *p_str, const wchar_t **r_end);
+
+godot_int GDAPI godot_string_get_slice_count(const godot_string *p_self, godot_string p_splitter);
+godot_string GDAPI godot_string_get_slice(const godot_string *p_self, godot_string p_splitter, godot_int p_slice);
+godot_string GDAPI godot_string_get_slicec(const godot_string *p_self, wchar_t p_splitter, godot_int p_slice);
+
+godot_array GDAPI godot_string_split(const godot_string *p_self, const godot_string *p_splitter);
+godot_array GDAPI godot_string_split_allow_empty(const godot_string *p_self, const godot_string *p_splitter);
+godot_array GDAPI godot_string_split_floats(const godot_string *p_self, const godot_string *p_splitter);
+godot_array GDAPI godot_string_split_floats_allows_empty(const godot_string *p_self, const godot_string *p_splitter);
+godot_array GDAPI godot_string_split_floats_mk(const godot_string *p_self, const godot_array *p_splitters);
+godot_array GDAPI godot_string_split_floats_mk_allows_empty(const godot_string *p_self, const godot_array *p_splitters);
+godot_array GDAPI godot_string_split_ints(const godot_string *p_self, const godot_string *p_splitter);
+godot_array GDAPI godot_string_split_ints_allows_empty(const godot_string *p_self, const godot_string *p_splitter);
+godot_array GDAPI godot_string_split_ints_mk(const godot_string *p_self, const godot_array *p_splitters);
+godot_array GDAPI godot_string_split_ints_mk_allows_empty(const godot_string *p_self, const godot_array *p_splitters);
+godot_array GDAPI godot_string_split_spaces(const godot_string *p_self);
+
+wchar_t GDAPI godot_string_char_lowercase(wchar_t p_char);
+wchar_t GDAPI godot_string_char_uppercase(wchar_t p_char);
+godot_string GDAPI godot_string_to_lower(const godot_string *p_self);
+godot_string GDAPI godot_string_to_upper(const godot_string *p_self);
+
+godot_string GDAPI godot_string_get_basename(const godot_string *p_self);
+godot_string GDAPI godot_string_get_extension(const godot_string *p_self);
+godot_string GDAPI godot_string_left(const godot_string *p_self, godot_int p_pos);
+wchar_t GDAPI godot_string_ord_at(const godot_string *p_self, godot_int p_idx);
+godot_string GDAPI godot_string_plus_file(const godot_string *p_self, const godot_string *p_file);
+godot_string GDAPI godot_string_right(const godot_string *p_self, godot_int p_pos);
+godot_string GDAPI godot_string_strip_edges(const godot_string *p_self, godot_bool p_left, godot_bool p_right);
+godot_string GDAPI godot_string_strip_escapes(const godot_string *p_self);
+
+void GDAPI godot_string_erase(godot_string *p_self, godot_int p_pos, godot_int p_chars);
+
+godot_char_string GDAPI godot_string_ascii(const godot_string *p_self);
+godot_char_string GDAPI godot_string_ascii_extended(const godot_string *p_self);
+godot_char_string GDAPI godot_string_utf8(const godot_string *p_self);
+godot_bool GDAPI godot_string_parse_utf8(godot_string *p_self, const char *p_utf8);
+godot_bool GDAPI godot_string_parse_utf8_with_len(godot_string *p_self, const char *p_utf8, godot_int p_len);
+godot_string GDAPI godot_string_chars_to_utf8(const char *p_utf8);
+godot_string GDAPI godot_string_chars_to_utf8_with_len(const char *p_utf8, godot_int p_len);
+
+uint32_t GDAPI godot_string_hash(const godot_string *p_self);
+uint64_t GDAPI godot_string_hash64(const godot_string *p_self);
+uint32_t GDAPI godot_string_hash_chars(const char *p_cstr);
+uint32_t GDAPI godot_string_hash_chars_with_len(const char *p_cstr, godot_int p_len);
+uint32_t GDAPI godot_string_hash_utf8_chars(const wchar_t *p_str);
+uint32_t GDAPI godot_string_hash_utf8_chars_with_len(const wchar_t *p_str, godot_int p_len);
+godot_pool_byte_array GDAPI godot_string_md5_buffer(const godot_string *p_self);
+godot_string GDAPI godot_string_md5_text(const godot_string *p_self);
+godot_pool_byte_array GDAPI godot_string_sha256_buffer(const godot_string *p_self);
+godot_string GDAPI godot_string_sha256_text(const godot_string *p_self);
+
+godot_bool godot_string_empty(const godot_string *p_self);
+
+// path functions
+godot_string GDAPI godot_string_get_base_dir(const godot_string *p_self);
+godot_string GDAPI godot_string_get_file(const godot_string *p_self);
+godot_string GDAPI godot_string_humanize_size(size_t p_size);
+godot_bool GDAPI godot_string_is_abs_path(const godot_string *p_self);
+godot_bool GDAPI godot_string_is_rel_path(const godot_string *p_self);
+godot_bool GDAPI godot_string_is_resource_file(const godot_string *p_self);
+godot_string GDAPI godot_string_path_to(const godot_string *p_self, const godot_string *p_path);
+godot_string GDAPI godot_string_path_to_file(const godot_string *p_self, const godot_string *p_path);
+godot_string GDAPI godot_string_simplify_path(const godot_string *p_self);
+
+godot_string GDAPI godot_string_c_escape(const godot_string *p_self);
+godot_string GDAPI godot_string_c_escape_multiline(const godot_string *p_self);
+godot_string GDAPI godot_string_c_unescape(const godot_string *p_self);
+godot_string GDAPI godot_string_http_escape(const godot_string *p_self);
+godot_string GDAPI godot_string_http_unescape(const godot_string *p_self);
+godot_string GDAPI godot_string_json_escape(const godot_string *p_self);
+godot_string GDAPI godot_string_word_wrap(const godot_string *p_self, godot_int p_chars_per_line);
+godot_string GDAPI godot_string_xml_escape(const godot_string *p_self);
+godot_string GDAPI godot_string_xml_escape_with_quotes(const godot_string *p_self);
+godot_string GDAPI godot_string_xml_unescape(const godot_string *p_self);
+
+godot_string GDAPI godot_string_percent_decode(const godot_string *p_self);
+godot_string GDAPI godot_string_percent_encode(const godot_string *p_self);
+
+godot_bool GDAPI godot_string_is_valid_float(const godot_string *p_self);
+godot_bool GDAPI godot_string_is_valid_hex_number(const godot_string *p_self, godot_bool p_with_prefix);
+godot_bool GDAPI godot_string_is_valid_html_color(const godot_string *p_self);
+godot_bool GDAPI godot_string_is_valid_identifier(const godot_string *p_self);
+godot_bool GDAPI godot_string_is_valid_integer(const godot_string *p_self);
+godot_bool GDAPI godot_string_is_valid_ip_address(const godot_string *p_self);
+
+godot_string GDAPI godot_string_dedent(const godot_string *p_self);
+godot_string GDAPI godot_string_trim_prefix(const godot_string *p_self, const godot_string *p_prefix);
+godot_string GDAPI godot_string_trim_suffix(const godot_string *p_self, const godot_string *p_suffix);
+godot_string GDAPI godot_string_rstrip(const godot_string *p_self, const godot_string *p_chars);
+godot_pool_string_array GDAPI godot_string_rsplit(const godot_string *p_self, const godot_string *p_divisor, const godot_bool p_allow_empty, const godot_int p_maxsplit);
+
+void GDAPI godot_string_destroy(godot_string *p_self);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_STRING_H
diff --git a/godot_headers/gdnative/string_name.h b/godot_headers/gdnative/string_name.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/string_name.h
@@ -0,0 +1,78 @@
+/*************************************************************************/
+/*  string_name.h                                                        */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_STRING_NAME_H
+#define GODOT_STRING_NAME_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include <wchar.h>
+
+#define GODOT_STRING_NAME_SIZE sizeof(void *)
+
+#ifndef GODOT_CORE_API_GODOT_STRING_NAME_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_STRING_NAME_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_STRING_NAME_SIZE];
+} godot_string_name;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/gdnative.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_string_name_new(godot_string_name *r_dest, const godot_string *p_name);
+void GDAPI godot_string_name_new_data(godot_string_name *r_dest, const char *p_name);
+
+godot_string GDAPI godot_string_name_get_name(const godot_string_name *p_self);
+
+uint32_t GDAPI godot_string_name_get_hash(const godot_string_name *p_self);
+const void GDAPI *godot_string_name_get_data_unique_pointer(const godot_string_name *p_self);
+
+godot_bool GDAPI godot_string_name_operator_equal(const godot_string_name *p_self, const godot_string_name *p_other);
+godot_bool GDAPI godot_string_name_operator_less(const godot_string_name *p_self, const godot_string_name *p_other);
+
+void GDAPI godot_string_name_destroy(godot_string_name *p_self);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_STRING_NAME_H
diff --git a/godot_headers/gdnative/transform.h b/godot_headers/gdnative/transform.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/transform.h
@@ -0,0 +1,111 @@
+/*************************************************************************/
+/*  transform.h                                                          */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_TRANSFORM_H
+#define GODOT_TRANSFORM_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_TRANSFORM_SIZE 48
+
+#ifndef GODOT_CORE_API_GODOT_TRANSFORM_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_TRANSFORM_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_TRANSFORM_SIZE];
+} godot_transform;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/basis.h>
+#include <gdnative/gdnative.h>
+#include <gdnative/variant.h>
+#include <gdnative/vector3.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_transform_new_with_axis_origin(godot_transform *r_dest, const godot_vector3 *p_x_axis, const godot_vector3 *p_y_axis, const godot_vector3 *p_z_axis, const godot_vector3 *p_origin);
+void GDAPI godot_transform_new(godot_transform *r_dest, const godot_basis *p_basis, const godot_vector3 *p_origin);
+void GDAPI godot_transform_new_with_quat(godot_transform *r_dest, const godot_quat *p_quat);
+
+godot_basis GDAPI godot_transform_get_basis(const godot_transform *p_self);
+void GDAPI godot_transform_set_basis(godot_transform *p_self, const godot_basis *p_v);
+
+godot_vector3 GDAPI godot_transform_get_origin(const godot_transform *p_self);
+void GDAPI godot_transform_set_origin(godot_transform *p_self, const godot_vector3 *p_v);
+
+godot_string GDAPI godot_transform_as_string(const godot_transform *p_self);
+
+godot_transform GDAPI godot_transform_inverse(const godot_transform *p_self);
+
+godot_transform GDAPI godot_transform_affine_inverse(const godot_transform *p_self);
+
+godot_transform GDAPI godot_transform_orthonormalized(const godot_transform *p_self);
+
+godot_transform GDAPI godot_transform_rotated(const godot_transform *p_self, const godot_vector3 *p_axis, const godot_real p_phi);
+
+godot_transform GDAPI godot_transform_scaled(const godot_transform *p_self, const godot_vector3 *p_scale);
+
+godot_transform GDAPI godot_transform_translated(const godot_transform *p_self, const godot_vector3 *p_ofs);
+
+godot_transform GDAPI godot_transform_looking_at(const godot_transform *p_self, const godot_vector3 *p_target, const godot_vector3 *p_up);
+
+godot_plane GDAPI godot_transform_xform_plane(const godot_transform *p_self, const godot_plane *p_v);
+
+godot_plane GDAPI godot_transform_xform_inv_plane(const godot_transform *p_self, const godot_plane *p_v);
+
+void GDAPI godot_transform_new_identity(godot_transform *r_dest);
+
+godot_bool GDAPI godot_transform_operator_equal(const godot_transform *p_self, const godot_transform *p_b);
+
+godot_transform GDAPI godot_transform_operator_multiply(const godot_transform *p_self, const godot_transform *p_b);
+
+godot_vector3 GDAPI godot_transform_xform_vector3(const godot_transform *p_self, const godot_vector3 *p_v);
+
+godot_vector3 GDAPI godot_transform_xform_inv_vector3(const godot_transform *p_self, const godot_vector3 *p_v);
+
+godot_aabb GDAPI godot_transform_xform_aabb(const godot_transform *p_self, const godot_aabb *p_v);
+
+godot_aabb GDAPI godot_transform_xform_inv_aabb(const godot_transform *p_self, const godot_aabb *p_v);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_TRANSFORM_H
diff --git a/godot_headers/gdnative/transform2d.h b/godot_headers/gdnative/transform2d.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/transform2d.h
@@ -0,0 +1,109 @@
+/*************************************************************************/
+/*  transform2d.h                                                        */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_TRANSFORM2D_H
+#define GODOT_TRANSFORM2D_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_TRANSFORM2D_SIZE 24
+
+#ifndef GODOT_CORE_API_GODOT_TRANSFORM2D_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_TRANSFORM2D_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_TRANSFORM2D_SIZE];
+} godot_transform2d;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/gdnative.h>
+#include <gdnative/variant.h>
+#include <gdnative/vector2.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_transform2d_new(godot_transform2d *r_dest, const godot_real p_rot, const godot_vector2 *p_pos);
+void GDAPI godot_transform2d_new_axis_origin(godot_transform2d *r_dest, const godot_vector2 *p_x_axis, const godot_vector2 *p_y_axis, const godot_vector2 *p_origin);
+
+godot_string GDAPI godot_transform2d_as_string(const godot_transform2d *p_self);
+
+godot_transform2d GDAPI godot_transform2d_inverse(const godot_transform2d *p_self);
+
+godot_transform2d GDAPI godot_transform2d_affine_inverse(const godot_transform2d *p_self);
+
+godot_real GDAPI godot_transform2d_get_rotation(const godot_transform2d *p_self);
+
+godot_vector2 GDAPI godot_transform2d_get_origin(const godot_transform2d *p_self);
+
+godot_vector2 GDAPI godot_transform2d_get_scale(const godot_transform2d *p_self);
+
+godot_transform2d GDAPI godot_transform2d_orthonormalized(const godot_transform2d *p_self);
+
+godot_transform2d GDAPI godot_transform2d_rotated(const godot_transform2d *p_self, const godot_real p_phi);
+
+godot_transform2d GDAPI godot_transform2d_scaled(const godot_transform2d *p_self, const godot_vector2 *p_scale);
+
+godot_transform2d GDAPI godot_transform2d_translated(const godot_transform2d *p_self, const godot_vector2 *p_offset);
+
+godot_vector2 GDAPI godot_transform2d_xform_vector2(const godot_transform2d *p_self, const godot_vector2 *p_v);
+
+godot_vector2 GDAPI godot_transform2d_xform_inv_vector2(const godot_transform2d *p_self, const godot_vector2 *p_v);
+
+godot_vector2 GDAPI godot_transform2d_basis_xform_vector2(const godot_transform2d *p_self, const godot_vector2 *p_v);
+
+godot_vector2 GDAPI godot_transform2d_basis_xform_inv_vector2(const godot_transform2d *p_self, const godot_vector2 *p_v);
+
+godot_transform2d GDAPI godot_transform2d_interpolate_with(const godot_transform2d *p_self, const godot_transform2d *p_m, const godot_real p_c);
+
+godot_bool GDAPI godot_transform2d_operator_equal(const godot_transform2d *p_self, const godot_transform2d *p_b);
+
+godot_transform2d GDAPI godot_transform2d_operator_multiply(const godot_transform2d *p_self, const godot_transform2d *p_b);
+
+void GDAPI godot_transform2d_new_identity(godot_transform2d *r_dest);
+
+godot_rect2 GDAPI godot_transform2d_xform_rect2(const godot_transform2d *p_self, const godot_rect2 *p_v);
+
+godot_rect2 GDAPI godot_transform2d_xform_inv_rect2(const godot_transform2d *p_self, const godot_rect2 *p_v);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_TRANSFORM2D_H
diff --git a/godot_headers/gdnative/variant.h b/godot_headers/gdnative/variant.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/variant.h
@@ -0,0 +1,255 @@
+/*************************************************************************/
+/*  variant.h                                                            */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_VARIANT_H
+#define GODOT_VARIANT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_VARIANT_SIZE (16 + sizeof(void *))
+
+#ifndef GODOT_CORE_API_GODOT_VARIANT_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_VARIANT_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_VARIANT_SIZE];
+} godot_variant;
+#endif
+
+typedef enum godot_variant_type {
+	GODOT_VARIANT_TYPE_NIL,
+
+	// atomic types
+	GODOT_VARIANT_TYPE_BOOL,
+	GODOT_VARIANT_TYPE_INT,
+	GODOT_VARIANT_TYPE_REAL,
+	GODOT_VARIANT_TYPE_STRING,
+
+	// math types
+
+	GODOT_VARIANT_TYPE_VECTOR2, // 5
+	GODOT_VARIANT_TYPE_RECT2,
+	GODOT_VARIANT_TYPE_VECTOR3,
+	GODOT_VARIANT_TYPE_TRANSFORM2D,
+	GODOT_VARIANT_TYPE_PLANE,
+	GODOT_VARIANT_TYPE_QUAT, // 10
+	GODOT_VARIANT_TYPE_AABB,
+	GODOT_VARIANT_TYPE_BASIS,
+	GODOT_VARIANT_TYPE_TRANSFORM,
+
+	// misc types
+	GODOT_VARIANT_TYPE_COLOR,
+	GODOT_VARIANT_TYPE_NODE_PATH, // 15
+	GODOT_VARIANT_TYPE_RID,
+	GODOT_VARIANT_TYPE_OBJECT,
+	GODOT_VARIANT_TYPE_DICTIONARY,
+	GODOT_VARIANT_TYPE_ARRAY, // 20
+
+	// arrays
+	GODOT_VARIANT_TYPE_POOL_BYTE_ARRAY,
+	GODOT_VARIANT_TYPE_POOL_INT_ARRAY,
+	GODOT_VARIANT_TYPE_POOL_REAL_ARRAY,
+	GODOT_VARIANT_TYPE_POOL_STRING_ARRAY,
+	GODOT_VARIANT_TYPE_POOL_VECTOR2_ARRAY, // 25
+	GODOT_VARIANT_TYPE_POOL_VECTOR3_ARRAY,
+	GODOT_VARIANT_TYPE_POOL_COLOR_ARRAY,
+} godot_variant_type;
+
+typedef enum godot_variant_call_error_error {
+	GODOT_CALL_ERROR_CALL_OK,
+	GODOT_CALL_ERROR_CALL_ERROR_INVALID_METHOD,
+	GODOT_CALL_ERROR_CALL_ERROR_INVALID_ARGUMENT,
+	GODOT_CALL_ERROR_CALL_ERROR_TOO_MANY_ARGUMENTS,
+	GODOT_CALL_ERROR_CALL_ERROR_TOO_FEW_ARGUMENTS,
+	GODOT_CALL_ERROR_CALL_ERROR_INSTANCE_IS_NULL,
+} godot_variant_call_error_error;
+
+typedef struct godot_variant_call_error {
+	godot_variant_call_error_error error;
+	int argument;
+	godot_variant_type expected;
+} godot_variant_call_error;
+
+typedef enum godot_variant_operator {
+	// comparison
+	GODOT_VARIANT_OP_EQUAL,
+	GODOT_VARIANT_OP_NOT_EQUAL,
+	GODOT_VARIANT_OP_LESS,
+	GODOT_VARIANT_OP_LESS_EQUAL,
+	GODOT_VARIANT_OP_GREATER,
+	GODOT_VARIANT_OP_GREATER_EQUAL,
+
+	// mathematic
+	GODOT_VARIANT_OP_ADD,
+	GODOT_VARIANT_OP_SUBTRACT,
+	GODOT_VARIANT_OP_MULTIPLY,
+	GODOT_VARIANT_OP_DIVIDE,
+	GODOT_VARIANT_OP_NEGATE,
+	GODOT_VARIANT_OP_POSITIVE,
+	GODOT_VARIANT_OP_MODULE,
+	GODOT_VARIANT_OP_STRING_CONCAT,
+
+	// bitwise
+	GODOT_VARIANT_OP_SHIFT_LEFT,
+	GODOT_VARIANT_OP_SHIFT_RIGHT,
+	GODOT_VARIANT_OP_BIT_AND,
+	GODOT_VARIANT_OP_BIT_OR,
+	GODOT_VARIANT_OP_BIT_XOR,
+	GODOT_VARIANT_OP_BIT_NEGATE,
+
+	// logic
+	GODOT_VARIANT_OP_AND,
+	GODOT_VARIANT_OP_OR,
+	GODOT_VARIANT_OP_XOR,
+	GODOT_VARIANT_OP_NOT,
+
+	// containment
+	GODOT_VARIANT_OP_IN,
+
+	GODOT_VARIANT_OP_MAX,
+} godot_variant_operator;
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/aabb.h>
+#include <gdnative/array.h>
+#include <gdnative/basis.h>
+#include <gdnative/color.h>
+#include <gdnative/dictionary.h>
+#include <gdnative/node_path.h>
+#include <gdnative/plane.h>
+#include <gdnative/pool_arrays.h>
+#include <gdnative/quat.h>
+#include <gdnative/rect2.h>
+#include <gdnative/rid.h>
+#include <gdnative/string.h>
+#include <gdnative/transform.h>
+#include <gdnative/transform2d.h>
+#include <gdnative/variant.h>
+#include <gdnative/vector2.h>
+#include <gdnative/vector3.h>
+
+#include <gdnative/gdnative.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+godot_variant_type GDAPI godot_variant_get_type(const godot_variant *p_v);
+
+void GDAPI godot_variant_new_copy(godot_variant *r_dest, const godot_variant *p_src);
+
+void GDAPI godot_variant_new_nil(godot_variant *r_dest);
+
+void GDAPI godot_variant_new_bool(godot_variant *r_dest, const godot_bool p_b);
+void GDAPI godot_variant_new_uint(godot_variant *r_dest, const uint64_t p_i);
+void GDAPI godot_variant_new_int(godot_variant *r_dest, const int64_t p_i);
+void GDAPI godot_variant_new_real(godot_variant *r_dest, const double p_r);
+void GDAPI godot_variant_new_string(godot_variant *r_dest, const godot_string *p_s);
+void GDAPI godot_variant_new_vector2(godot_variant *r_dest, const godot_vector2 *p_v2);
+void GDAPI godot_variant_new_rect2(godot_variant *r_dest, const godot_rect2 *p_rect2);
+void GDAPI godot_variant_new_vector3(godot_variant *r_dest, const godot_vector3 *p_v3);
+void GDAPI godot_variant_new_transform2d(godot_variant *r_dest, const godot_transform2d *p_t2d);
+void GDAPI godot_variant_new_plane(godot_variant *r_dest, const godot_plane *p_plane);
+void GDAPI godot_variant_new_quat(godot_variant *r_dest, const godot_quat *p_quat);
+void GDAPI godot_variant_new_aabb(godot_variant *r_dest, const godot_aabb *p_aabb);
+void GDAPI godot_variant_new_basis(godot_variant *r_dest, const godot_basis *p_basis);
+void GDAPI godot_variant_new_transform(godot_variant *r_dest, const godot_transform *p_trans);
+void GDAPI godot_variant_new_color(godot_variant *r_dest, const godot_color *p_color);
+void GDAPI godot_variant_new_node_path(godot_variant *r_dest, const godot_node_path *p_np);
+void GDAPI godot_variant_new_rid(godot_variant *r_dest, const godot_rid *p_rid);
+void GDAPI godot_variant_new_object(godot_variant *r_dest, const godot_object *p_obj);
+void GDAPI godot_variant_new_dictionary(godot_variant *r_dest, const godot_dictionary *p_dict);
+void GDAPI godot_variant_new_array(godot_variant *r_dest, const godot_array *p_arr);
+void GDAPI godot_variant_new_pool_byte_array(godot_variant *r_dest, const godot_pool_byte_array *p_pba);
+void GDAPI godot_variant_new_pool_int_array(godot_variant *r_dest, const godot_pool_int_array *p_pia);
+void GDAPI godot_variant_new_pool_real_array(godot_variant *r_dest, const godot_pool_real_array *p_pra);
+void GDAPI godot_variant_new_pool_string_array(godot_variant *r_dest, const godot_pool_string_array *p_psa);
+void GDAPI godot_variant_new_pool_vector2_array(godot_variant *r_dest, const godot_pool_vector2_array *p_pv2a);
+void GDAPI godot_variant_new_pool_vector3_array(godot_variant *r_dest, const godot_pool_vector3_array *p_pv3a);
+void GDAPI godot_variant_new_pool_color_array(godot_variant *r_dest, const godot_pool_color_array *p_pca);
+
+godot_bool GDAPI godot_variant_as_bool(const godot_variant *p_self);
+uint64_t GDAPI godot_variant_as_uint(const godot_variant *p_self);
+int64_t GDAPI godot_variant_as_int(const godot_variant *p_self);
+double GDAPI godot_variant_as_real(const godot_variant *p_self);
+godot_string GDAPI godot_variant_as_string(const godot_variant *p_self);
+godot_vector2 GDAPI godot_variant_as_vector2(const godot_variant *p_self);
+godot_rect2 GDAPI godot_variant_as_rect2(const godot_variant *p_self);
+godot_vector3 GDAPI godot_variant_as_vector3(const godot_variant *p_self);
+godot_transform2d GDAPI godot_variant_as_transform2d(const godot_variant *p_self);
+godot_plane GDAPI godot_variant_as_plane(const godot_variant *p_self);
+godot_quat GDAPI godot_variant_as_quat(const godot_variant *p_self);
+godot_aabb GDAPI godot_variant_as_aabb(const godot_variant *p_self);
+godot_basis GDAPI godot_variant_as_basis(const godot_variant *p_self);
+godot_transform GDAPI godot_variant_as_transform(const godot_variant *p_self);
+godot_color GDAPI godot_variant_as_color(const godot_variant *p_self);
+godot_node_path GDAPI godot_variant_as_node_path(const godot_variant *p_self);
+godot_rid GDAPI godot_variant_as_rid(const godot_variant *p_self);
+godot_object GDAPI *godot_variant_as_object(const godot_variant *p_self);
+godot_dictionary GDAPI godot_variant_as_dictionary(const godot_variant *p_self);
+godot_array GDAPI godot_variant_as_array(const godot_variant *p_self);
+godot_pool_byte_array GDAPI godot_variant_as_pool_byte_array(const godot_variant *p_self);
+godot_pool_int_array GDAPI godot_variant_as_pool_int_array(const godot_variant *p_self);
+godot_pool_real_array GDAPI godot_variant_as_pool_real_array(const godot_variant *p_self);
+godot_pool_string_array GDAPI godot_variant_as_pool_string_array(const godot_variant *p_self);
+godot_pool_vector2_array GDAPI godot_variant_as_pool_vector2_array(const godot_variant *p_self);
+godot_pool_vector3_array GDAPI godot_variant_as_pool_vector3_array(const godot_variant *p_self);
+godot_pool_color_array GDAPI godot_variant_as_pool_color_array(const godot_variant *p_self);
+
+godot_variant GDAPI godot_variant_call(godot_variant *p_self, const godot_string *p_method, const godot_variant **p_args, const godot_int p_argcount, godot_variant_call_error *r_error);
+
+godot_bool GDAPI godot_variant_has_method(const godot_variant *p_self, const godot_string *p_method);
+
+godot_bool GDAPI godot_variant_operator_equal(const godot_variant *p_self, const godot_variant *p_other);
+godot_bool GDAPI godot_variant_operator_less(const godot_variant *p_self, const godot_variant *p_other);
+
+godot_bool GDAPI godot_variant_hash_compare(const godot_variant *p_self, const godot_variant *p_other);
+
+godot_bool GDAPI godot_variant_booleanize(const godot_variant *p_self);
+
+void GDAPI godot_variant_destroy(godot_variant *p_self);
+
+// GDNative core 1.1
+
+godot_string GDAPI godot_variant_get_operator_name(godot_variant_operator p_op);
+void GDAPI godot_variant_evaluate(godot_variant_operator p_op, const godot_variant *p_a, const godot_variant *p_b, godot_variant *r_ret, godot_bool *r_valid);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/godot_headers/gdnative/vector2.h b/godot_headers/gdnative/vector2.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/vector2.h
@@ -0,0 +1,138 @@
+/*************************************************************************/
+/*  vector2.h                                                            */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_VECTOR2_H
+#define GODOT_VECTOR2_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_VECTOR2_SIZE 8
+
+#ifndef GODOT_CORE_API_GODOT_VECTOR2_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_VECTOR2_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_VECTOR2_SIZE];
+} godot_vector2;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/gdnative.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void GDAPI godot_vector2_new(godot_vector2 *r_dest, const godot_real p_x, const godot_real p_y);
+
+godot_string GDAPI godot_vector2_as_string(const godot_vector2 *p_self);
+
+godot_vector2 GDAPI godot_vector2_normalized(const godot_vector2 *p_self);
+
+godot_real GDAPI godot_vector2_length(const godot_vector2 *p_self);
+
+godot_real GDAPI godot_vector2_angle(const godot_vector2 *p_self);
+
+godot_real GDAPI godot_vector2_length_squared(const godot_vector2 *p_self);
+
+godot_bool GDAPI godot_vector2_is_normalized(const godot_vector2 *p_self);
+
+godot_real GDAPI godot_vector2_distance_to(const godot_vector2 *p_self, const godot_vector2 *p_to);
+
+godot_real GDAPI godot_vector2_distance_squared_to(const godot_vector2 *p_self, const godot_vector2 *p_to);
+
+godot_real GDAPI godot_vector2_angle_to(const godot_vector2 *p_self, const godot_vector2 *p_to);
+
+godot_real GDAPI godot_vector2_angle_to_point(const godot_vector2 *p_self, const godot_vector2 *p_to);
+
+godot_vector2 GDAPI godot_vector2_linear_interpolate(const godot_vector2 *p_self, const godot_vector2 *p_b, const godot_real p_t);
+
+godot_vector2 GDAPI godot_vector2_cubic_interpolate(const godot_vector2 *p_self, const godot_vector2 *p_b, const godot_vector2 *p_pre_a, const godot_vector2 *p_post_b, const godot_real p_t);
+
+godot_vector2 GDAPI godot_vector2_rotated(const godot_vector2 *p_self, const godot_real p_phi);
+
+godot_vector2 GDAPI godot_vector2_tangent(const godot_vector2 *p_self);
+
+godot_vector2 GDAPI godot_vector2_floor(const godot_vector2 *p_self);
+
+godot_vector2 GDAPI godot_vector2_snapped(const godot_vector2 *p_self, const godot_vector2 *p_by);
+
+godot_real GDAPI godot_vector2_aspect(const godot_vector2 *p_self);
+
+godot_real GDAPI godot_vector2_dot(const godot_vector2 *p_self, const godot_vector2 *p_with);
+
+godot_vector2 GDAPI godot_vector2_slide(const godot_vector2 *p_self, const godot_vector2 *p_n);
+
+godot_vector2 GDAPI godot_vector2_bounce(const godot_vector2 *p_self, const godot_vector2 *p_n);
+
+godot_vector2 GDAPI godot_vector2_reflect(const godot_vector2 *p_self, const godot_vector2 *p_n);
+
+godot_vector2 GDAPI godot_vector2_abs(const godot_vector2 *p_self);
+
+godot_vector2 GDAPI godot_vector2_clamped(const godot_vector2 *p_self, const godot_real p_length);
+
+godot_vector2 GDAPI godot_vector2_operator_add(const godot_vector2 *p_self, const godot_vector2 *p_b);
+
+godot_vector2 GDAPI godot_vector2_operator_subtract(const godot_vector2 *p_self, const godot_vector2 *p_b);
+
+godot_vector2 GDAPI godot_vector2_operator_multiply_vector(const godot_vector2 *p_self, const godot_vector2 *p_b);
+
+godot_vector2 GDAPI godot_vector2_operator_multiply_scalar(const godot_vector2 *p_self, const godot_real p_b);
+
+godot_vector2 GDAPI godot_vector2_operator_divide_vector(const godot_vector2 *p_self, const godot_vector2 *p_b);
+
+godot_vector2 GDAPI godot_vector2_operator_divide_scalar(const godot_vector2 *p_self, const godot_real p_b);
+
+godot_bool GDAPI godot_vector2_operator_equal(const godot_vector2 *p_self, const godot_vector2 *p_b);
+
+godot_bool GDAPI godot_vector2_operator_less(const godot_vector2 *p_self, const godot_vector2 *p_b);
+
+godot_vector2 GDAPI godot_vector2_operator_neg(const godot_vector2 *p_self);
+
+void GDAPI godot_vector2_set_x(godot_vector2 *p_self, const godot_real p_x);
+
+void GDAPI godot_vector2_set_y(godot_vector2 *p_self, const godot_real p_y);
+
+godot_real GDAPI godot_vector2_get_x(const godot_vector2 *p_self);
+
+godot_real GDAPI godot_vector2_get_y(const godot_vector2 *p_self);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_VECTOR2_H
diff --git a/godot_headers/gdnative/vector3.h b/godot_headers/gdnative/vector3.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative/vector3.h
@@ -0,0 +1,145 @@
+/*************************************************************************/
+/*  vector3.h                                                            */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_VECTOR3_H
+#define GODOT_VECTOR3_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#define GODOT_VECTOR3_SIZE 12
+
+#ifndef GODOT_CORE_API_GODOT_VECTOR3_TYPE_DEFINED
+#define GODOT_CORE_API_GODOT_VECTOR3_TYPE_DEFINED
+typedef struct {
+	uint8_t _dont_touch_that[GODOT_VECTOR3_SIZE];
+} godot_vector3;
+#endif
+
+// reduce extern "C" nesting for VS2013
+#ifdef __cplusplus
+}
+#endif
+
+#include <gdnative/basis.h>
+#include <gdnative/gdnative.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+	GODOT_VECTOR3_AXIS_X,
+	GODOT_VECTOR3_AXIS_Y,
+	GODOT_VECTOR3_AXIS_Z,
+} godot_vector3_axis;
+
+void GDAPI godot_vector3_new(godot_vector3 *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_z);
+
+godot_string GDAPI godot_vector3_as_string(const godot_vector3 *p_self);
+
+godot_int GDAPI godot_vector3_min_axis(const godot_vector3 *p_self);
+
+godot_int GDAPI godot_vector3_max_axis(const godot_vector3 *p_self);
+
+godot_real GDAPI godot_vector3_length(const godot_vector3 *p_self);
+
+godot_real GDAPI godot_vector3_length_squared(const godot_vector3 *p_self);
+
+godot_bool GDAPI godot_vector3_is_normalized(const godot_vector3 *p_self);
+
+godot_vector3 GDAPI godot_vector3_normalized(const godot_vector3 *p_self);
+
+godot_vector3 GDAPI godot_vector3_inverse(const godot_vector3 *p_self);
+
+godot_vector3 GDAPI godot_vector3_snapped(const godot_vector3 *p_self, const godot_vector3 *p_by);
+
+godot_vector3 GDAPI godot_vector3_rotated(const godot_vector3 *p_self, const godot_vector3 *p_axis, const godot_real p_phi);
+
+godot_vector3 GDAPI godot_vector3_linear_interpolate(const godot_vector3 *p_self, const godot_vector3 *p_b, const godot_real p_t);
+
+godot_vector3 GDAPI godot_vector3_cubic_interpolate(const godot_vector3 *p_self, const godot_vector3 *p_b, const godot_vector3 *p_pre_a, const godot_vector3 *p_post_b, const godot_real p_t);
+
+godot_real GDAPI godot_vector3_dot(const godot_vector3 *p_self, const godot_vector3 *p_b);
+
+godot_vector3 GDAPI godot_vector3_cross(const godot_vector3 *p_self, const godot_vector3 *p_b);
+
+godot_basis GDAPI godot_vector3_outer(const godot_vector3 *p_self, const godot_vector3 *p_b);
+
+godot_basis GDAPI godot_vector3_to_diagonal_matrix(const godot_vector3 *p_self);
+
+godot_vector3 GDAPI godot_vector3_abs(const godot_vector3 *p_self);
+
+godot_vector3 GDAPI godot_vector3_floor(const godot_vector3 *p_self);
+
+godot_vector3 GDAPI godot_vector3_ceil(const godot_vector3 *p_self);
+
+godot_real GDAPI godot_vector3_distance_to(const godot_vector3 *p_self, const godot_vector3 *p_b);
+
+godot_real GDAPI godot_vector3_distance_squared_to(const godot_vector3 *p_self, const godot_vector3 *p_b);
+
+godot_real GDAPI godot_vector3_angle_to(const godot_vector3 *p_self, const godot_vector3 *p_to);
+
+godot_vector3 GDAPI godot_vector3_slide(const godot_vector3 *p_self, const godot_vector3 *p_n);
+
+godot_vector3 GDAPI godot_vector3_bounce(const godot_vector3 *p_self, const godot_vector3 *p_n);
+
+godot_vector3 GDAPI godot_vector3_reflect(const godot_vector3 *p_self, const godot_vector3 *p_n);
+
+godot_vector3 GDAPI godot_vector3_operator_add(const godot_vector3 *p_self, const godot_vector3 *p_b);
+
+godot_vector3 GDAPI godot_vector3_operator_subtract(const godot_vector3 *p_self, const godot_vector3 *p_b);
+
+godot_vector3 GDAPI godot_vector3_operator_multiply_vector(const godot_vector3 *p_self, const godot_vector3 *p_b);
+
+godot_vector3 GDAPI godot_vector3_operator_multiply_scalar(const godot_vector3 *p_self, const godot_real p_b);
+
+godot_vector3 GDAPI godot_vector3_operator_divide_vector(const godot_vector3 *p_self, const godot_vector3 *p_b);
+
+godot_vector3 GDAPI godot_vector3_operator_divide_scalar(const godot_vector3 *p_self, const godot_real p_b);
+
+godot_bool GDAPI godot_vector3_operator_equal(const godot_vector3 *p_self, const godot_vector3 *p_b);
+
+godot_bool GDAPI godot_vector3_operator_less(const godot_vector3 *p_self, const godot_vector3 *p_b);
+
+godot_vector3 GDAPI godot_vector3_operator_neg(const godot_vector3 *p_self);
+
+void GDAPI godot_vector3_set_axis(godot_vector3 *p_self, const godot_vector3_axis p_axis, const godot_real p_val);
+
+godot_real GDAPI godot_vector3_get_axis(const godot_vector3 *p_self, const godot_vector3_axis p_axis);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_VECTOR3_H
diff --git a/godot_headers/gdnative_api.json b/godot_headers/gdnative_api.json
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative_api.json
@@ -0,0 +1,6379 @@
+{
+  "core": {
+    "type": "CORE",
+    "version": {
+      "major": 1,
+      "minor": 0
+    },
+    "next": {
+      "type": "CORE",
+      "version": {
+        "major": 1,
+        "minor": 1
+      },
+      "next": null,
+      "api": [
+        {
+          "name": "godot_color_to_abgr32",
+          "return_type": "godot_int",
+          "arguments": [
+            ["const godot_color *", "p_self"]
+          ]
+        },
+        {
+          "name": "godot_color_to_abgr64",
+          "return_type": "godot_int",
+          "arguments": [
+            ["const godot_color *", "p_self"]
+          ]
+        },
+        {
+          "name": "godot_color_to_argb64",
+          "return_type": "godot_int",
+          "arguments": [
+            ["const godot_color *", "p_self"]
+          ]
+        },
+        {
+          "name": "godot_color_to_rgba64",
+          "return_type": "godot_int",
+          "arguments": [
+            ["const godot_color *", "p_self"]
+          ]
+        },
+        {
+          "name": "godot_color_darkened",
+          "return_type": "godot_color",
+          "arguments": [
+            ["const godot_color *", "p_self"],
+            ["const godot_real", "p_amount"]
+          ]
+        },
+        {
+          "name": "godot_color_from_hsv",
+          "return_type": "godot_color",
+          "arguments": [
+            ["const godot_color *", "p_self"],
+            ["const godot_real", "p_h"],
+            ["const godot_real", "p_s"],
+            ["const godot_real", "p_v"],
+            ["const godot_real", "p_a"]
+          ]
+        },
+        {
+          "name": "godot_color_lightened",
+          "return_type": "godot_color",
+          "arguments": [
+            ["const godot_color *", "p_self"],
+            ["const godot_real", "p_amount"]
+          ]
+        },
+        {
+          "name": "godot_array_duplicate",
+          "return_type": "godot_array",
+          "arguments": [
+            ["const godot_array *", "p_self"],
+            ["const godot_bool", "p_deep"]
+          ]
+        },
+        {
+          "name": "godot_array_max",
+          "return_type": "godot_variant",
+          "arguments": [
+            ["const godot_array *", "p_self"]
+          ]
+        },
+        {
+          "name": "godot_array_min",
+          "return_type": "godot_variant",
+          "arguments": [
+            ["const godot_array *", "p_self"]
+          ]
+        },
+        {
+          "name": "godot_array_shuffle",
+          "return_type": "void",
+          "arguments": [
+            ["godot_array *", "p_self"]
+          ]
+        },
+        {
+          "name": "godot_basis_slerp",
+          "return_type": "godot_basis",
+          "arguments": [
+            ["const godot_basis *", "p_self"],
+            ["const godot_basis *", "p_b"],
+            ["const godot_real", "p_t"]
+          ]
+        },
+        {
+          "name": "godot_node_path_get_as_property_path",
+          "return_type": "godot_node_path",
+          "arguments": [
+            ["const godot_node_path *", "p_self"]
+          ]
+        },
+        {
+          "name": "godot_quat_set_axis_angle",
+          "return_type": "void",
+          "arguments": [
+            ["godot_quat *", "p_self"],
+            ["const godot_vector3 *", "p_axis"],
+            ["const godot_real", "p_angle"]
+          ]
+        },
+        {
+          "name": "godot_rect2_grow_individual",
+          "return_type": "godot_rect2",
+          "arguments": [
+            ["const godot_rect2 *", "p_self"],
+            ["const godot_real", "p_left"],
+            ["const godot_real", "p_top"],
+            ["const godot_real", "p_right"],
+            ["const godot_real", "p_bottom"]
+          ]
+        },
+        {
+          "name": "godot_rect2_grow_margin",
+          "return_type": "godot_rect2",
+          "arguments": [
+            ["const godot_rect2 *", "p_self"],
+            ["const godot_int", "p_margin"],
+            ["const godot_real", "p_by"]
+          ]
+        },
+        {
+          "name": "godot_rect2_abs",
+          "return_type": "godot_rect2",
+          "arguments": [
+            ["const godot_rect2 *", "p_self"]
+          ]
+        },
+        {
+          "name": "godot_string_dedent",
+          "return_type": "godot_string",
+          "arguments": [
+            ["const godot_string *", "p_self"]
+          ]
+        },
+        {
+          "name": "godot_string_trim_prefix",
+          "return_type": "godot_string",
+          "arguments": [
+            ["const godot_string *", "p_self"],
+            ["const godot_string *", "p_prefix"]
+          ]
+        },
+        {
+          "name": "godot_string_trim_suffix",
+          "return_type": "godot_string",
+          "arguments": [
+            ["const godot_string *", "p_self"],
+            ["const godot_string *", "p_suffix"]
+          ]
+        },
+        {
+          "name": "godot_string_rstrip",
+          "return_type": "godot_string",
+          "arguments": [
+            ["const godot_string *", "p_self"],
+            ["const godot_string *", "p_chars"]
+          ]
+        },
+        {
+          "name": "godot_string_rsplit",
+          "return_type": "godot_pool_string_array",
+          "arguments": [
+            ["const godot_string *", "p_self"],
+            ["const godot_string *", "p_divisor"],
+            ["const godot_bool", "p_allow_empty"],
+            ["const godot_int", "p_maxsplit"]
+          ]
+        },
+        {
+          "name": "godot_basis_get_quat",
+          "return_type": "godot_quat",
+          "arguments": [
+            ["const godot_basis *", "p_self"]
+          ]
+        },
+        {
+          "name": "godot_basis_set_quat",
+          "return_type": "void",
+          "arguments": [
+            ["godot_basis *", "p_self"],
+            ["const godot_quat *", "p_quat"]
+          ]
+        },
+        {
+          "name": "godot_basis_set_axis_angle_scale",
+          "return_type": "void",
+          "arguments": [
+            ["godot_basis *", "p_self"],
+            ["const godot_vector3 *", "p_axis"],
+            ["godot_real", "p_phi"],
+            ["const godot_vector3 *", "p_scale"]
+          ]
+        },
+        {
+          "name": "godot_basis_set_euler_scale",
+          "return_type": "void",
+          "arguments": [
+            ["godot_basis *", "p_self"],
+            ["const godot_vector3 *", "p_euler"],
+            ["const godot_vector3 *", "p_scale"]
+          ]
+        },
+        {
+          "name": "godot_basis_set_quat_scale",
+          "return_type": "void",
+          "arguments": [
+            ["godot_basis *", "p_self"],
+            ["const godot_quat *", "p_quat"],
+            ["const godot_vector3 *", "p_scale"]
+          ]
+        },
+        {
+          "name": "godot_dictionary_erase_with_return",
+          "return_type": "bool",
+          "arguments": [
+            ["godot_dictionary *", "p_self"],
+            ["const godot_variant *", "p_key"]
+          ]
+        },
+        {
+          "name": "godot_is_instance_valid",
+          "return_type": "bool",
+          "arguments": [
+            ["const godot_object *", "p_object"]
+          ]
+        },
+        {
+          "name": "godot_quat_new_with_basis",
+          "return_type": "void",
+          "arguments": [
+            ["godot_quat *", "r_dest"],
+            ["const godot_basis *", "p_basis"]
+          ]
+        },
+        {
+          "name": "godot_quat_new_with_euler",
+          "return_type": "void",
+          "arguments": [
+            ["godot_quat *", "r_dest"],
+            ["const godot_vector3 *", "p_euler"]
+          ]
+        },
+        {
+          "name": "godot_transform_new_with_quat",
+          "return_type": "void",
+          "arguments": [
+            ["godot_transform *", "r_dest"],
+            ["const godot_quat *", "p_quat"]
+          ]
+        },
+        {
+          "name": "godot_variant_get_operator_name",
+          "return_type": "godot_string",
+          "arguments": [
+            ["godot_variant_operator", "p_op"]
+          ]
+        },
+        {
+          "name": "godot_variant_evaluate",
+          "return_type": "void",
+          "arguments": [
+            ["godot_variant_operator", "p_op"],
+            ["const godot_variant *", "p_a"],
+            ["const godot_variant *", "p_b"],
+            ["godot_variant *", "r_ret"],
+            ["godot_bool *", "r_valid"]
+          ]
+        }
+      ]
+    },
+    "api": [
+      {
+        "name": "godot_color_new_rgba",
+        "return_type": "void",
+        "arguments": [
+          ["godot_color *", "r_dest"],
+          ["const godot_real", "p_r"],
+          ["const godot_real", "p_g"],
+          ["const godot_real", "p_b"],
+          ["const godot_real", "p_a"]
+        ]
+      },
+      {
+        "name": "godot_color_new_rgb",
+        "return_type": "void",
+        "arguments": [
+          ["godot_color *", "r_dest"],
+          ["const godot_real", "p_r"],
+          ["const godot_real", "p_g"],
+          ["const godot_real", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_color_get_r",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_set_r",
+        "return_type": "void",
+        "arguments": [
+          ["godot_color *", "p_self"],
+          ["const godot_real", "r"]
+        ]
+      },
+      {
+        "name": "godot_color_get_g",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_set_g",
+        "return_type": "void",
+        "arguments": [
+          ["godot_color *", "p_self"],
+          ["const godot_real", "g"]
+        ]
+      },
+      {
+        "name": "godot_color_get_b",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_set_b",
+        "return_type": "void",
+        "arguments": [
+          ["godot_color *", "p_self"],
+          ["const godot_real", "b"]
+        ]
+      },
+      {
+        "name": "godot_color_get_a",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_set_a",
+        "return_type": "void",
+        "arguments": [
+          ["godot_color *", "p_self"],
+          ["const godot_real", "a"]
+        ]
+      },
+      {
+        "name": "godot_color_get_h",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_get_s",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_get_v",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_as_string",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_to_rgba32",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_to_argb32",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_gray",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_inverted",
+        "return_type": "godot_color",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_contrasted",
+        "return_type": "godot_color",
+        "arguments": [
+          ["const godot_color *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_color_linear_interpolate",
+        "return_type": "godot_color",
+        "arguments": [
+          ["const godot_color *", "p_self"],
+          ["const godot_color *", "p_b"],
+          ["const godot_real", "p_t"]
+        ]
+      },
+      {
+        "name": "godot_color_blend",
+        "return_type": "godot_color",
+        "arguments": [
+          ["const godot_color *", "p_self"],
+          ["const godot_color *", "p_over"]
+        ]
+      },
+      {
+        "name": "godot_color_to_html",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_color *", "p_self"],
+          ["const godot_bool", "p_with_alpha"]
+        ]
+      },
+      {
+        "name": "godot_color_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_color *", "p_self"],
+          ["const godot_color *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_color_operator_less",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_color *", "p_self"],
+          ["const godot_color *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector2_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_vector2 *", "r_dest"],
+          ["const godot_real", "p_x"],
+          ["const godot_real", "p_y"]
+        ]
+      },
+      {
+        "name": "godot_vector2_as_string",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector2_normalized",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector2_length",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector2_angle",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector2_length_squared",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector2_is_normalized",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector2_distance_to",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_to"]
+        ]
+      },
+      {
+        "name": "godot_vector2_distance_squared_to",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_to"]
+        ]
+      },
+      {
+        "name": "godot_vector2_angle_to",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_to"]
+        ]
+      },
+      {
+        "name": "godot_vector2_angle_to_point",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_to"]
+        ]
+      },
+      {
+        "name": "godot_vector2_linear_interpolate",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_b"],
+          ["const godot_real", "p_t"]
+        ]
+      },
+      {
+        "name": "godot_vector2_cubic_interpolate",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_b"],
+          ["const godot_vector2 *", "p_pre_a"],
+          ["const godot_vector2 *", "p_post_b"],
+          ["const godot_real", "p_t"]
+        ]
+      },
+      {
+        "name": "godot_vector2_rotated",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_real", "p_phi"]
+        ]
+      },
+      {
+        "name": "godot_vector2_tangent",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector2_floor",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector2_snapped",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_by"]
+        ]
+      },
+      {
+        "name": "godot_vector2_aspect",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector2_dot",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_with"]
+        ]
+      },
+      {
+        "name": "godot_vector2_slide",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_n"]
+        ]
+      },
+      {
+        "name": "godot_vector2_bounce",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_n"]
+        ]
+      },
+      {
+        "name": "godot_vector2_reflect",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_n"]
+        ]
+      },
+      {
+        "name": "godot_vector2_abs",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector2_clamped",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_real", "p_length"]
+        ]
+      },
+      {
+        "name": "godot_vector2_operator_add",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector2_operator_subtract",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector2_operator_multiply_vector",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector2_operator_multiply_scalar",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_real", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector2_operator_divide_vector",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector2_operator_divide_scalar",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_real", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector2_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector2_operator_less",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"],
+          ["const godot_vector2 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector2_operator_neg",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector2_set_x",
+        "return_type": "void",
+        "arguments": [
+          ["godot_vector2 *", "p_self"],
+          ["const godot_real", "p_x"]
+        ]
+      },
+      {
+        "name": "godot_vector2_set_y",
+        "return_type": "void",
+        "arguments": [
+          ["godot_vector2 *", "p_self"],
+          ["const godot_real", "p_y"]
+        ]
+      },
+      {
+        "name": "godot_vector2_get_x",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector2_get_y",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_quat_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_quat *", "r_dest"],
+          ["const godot_real", "p_x"],
+          ["const godot_real", "p_y"],
+          ["const godot_real", "p_z"],
+          ["const godot_real", "p_w"]
+        ]
+      },
+      {
+        "name": "godot_quat_new_with_axis_angle",
+        "return_type": "void",
+        "arguments": [
+          ["godot_quat *", "r_dest"],
+          ["const godot_vector3 *", "p_axis"],
+          ["const godot_real", "p_angle"]
+        ]
+      },
+      {
+        "name": "godot_quat_get_x",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_quat *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_quat_set_x",
+        "return_type": "void",
+        "arguments": [
+          ["godot_quat *", "p_self"],
+          ["const godot_real", "val"]
+        ]
+      },
+      {
+        "name": "godot_quat_get_y",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_quat *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_quat_set_y",
+        "return_type": "void",
+        "arguments": [
+          ["godot_quat *", "p_self"],
+          ["const godot_real", "val"]
+        ]
+      },
+      {
+        "name": "godot_quat_get_z",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_quat *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_quat_set_z",
+        "return_type": "void",
+        "arguments": [
+          ["godot_quat *", "p_self"],
+          ["const godot_real", "val"]
+        ]
+      },
+      {
+        "name": "godot_quat_get_w",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_quat *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_quat_set_w",
+        "return_type": "void",
+        "arguments": [
+          ["godot_quat *", "p_self"],
+          ["const godot_real", "val"]
+        ]
+      },
+      {
+        "name": "godot_quat_as_string",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_quat *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_quat_length",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_quat *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_quat_length_squared",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_quat *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_quat_normalized",
+        "return_type": "godot_quat",
+        "arguments": [
+          ["const godot_quat *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_quat_is_normalized",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_quat *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_quat_inverse",
+        "return_type": "godot_quat",
+        "arguments": [
+          ["const godot_quat *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_quat_dot",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_quat *", "p_self"],
+          ["const godot_quat *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_quat_xform",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_quat *", "p_self"],
+          ["const godot_vector3 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_quat_slerp",
+        "return_type": "godot_quat",
+        "arguments": [
+          ["const godot_quat *", "p_self"],
+          ["const godot_quat *", "p_b"],
+          ["const godot_real", "p_t"]
+        ]
+      },
+      {
+        "name": "godot_quat_slerpni",
+        "return_type": "godot_quat",
+        "arguments": [
+          ["const godot_quat *", "p_self"],
+          ["const godot_quat *", "p_b"],
+          ["const godot_real", "p_t"]
+        ]
+      },
+      {
+        "name": "godot_quat_cubic_slerp",
+        "return_type": "godot_quat",
+        "arguments": [
+          ["const godot_quat *", "p_self"],
+          ["const godot_quat *", "p_b"],
+          ["const godot_quat *", "p_pre_a"],
+          ["const godot_quat *", "p_post_b"],
+          ["const godot_real", "p_t"]
+        ]
+      },
+      {
+        "name": "godot_quat_operator_multiply",
+        "return_type": "godot_quat",
+        "arguments": [
+          ["const godot_quat *", "p_self"],
+          ["const godot_real", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_quat_operator_add",
+        "return_type": "godot_quat",
+        "arguments": [
+          ["const godot_quat *", "p_self"],
+          ["const godot_quat *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_quat_operator_subtract",
+        "return_type": "godot_quat",
+        "arguments": [
+          ["const godot_quat *", "p_self"],
+          ["const godot_quat *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_quat_operator_divide",
+        "return_type": "godot_quat",
+        "arguments": [
+          ["const godot_quat *", "p_self"],
+          ["const godot_real", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_quat_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_quat *", "p_self"],
+          ["const godot_quat *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_quat_operator_neg",
+        "return_type": "godot_quat",
+        "arguments": [
+          ["const godot_quat *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_basis_new_with_rows",
+        "return_type": "void",
+        "arguments": [
+          ["godot_basis *", "r_dest"],
+          ["const godot_vector3 *", "p_x_axis"],
+          ["const godot_vector3 *", "p_y_axis"],
+          ["const godot_vector3 *", "p_z_axis"]
+        ]
+      },
+      {
+        "name": "godot_basis_new_with_axis_and_angle",
+        "return_type": "void",
+        "arguments": [
+          ["godot_basis *", "r_dest"],
+          ["const godot_vector3 *", "p_axis"],
+          ["const godot_real", "p_phi"]
+        ]
+      },
+      {
+        "name": "godot_basis_new_with_euler",
+        "return_type": "void",
+        "arguments": [
+          ["godot_basis *", "r_dest"],
+          ["const godot_vector3 *", "p_euler"]
+        ]
+      },
+      {
+        "name": "godot_basis_as_string",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_basis *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_basis_inverse",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_basis *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_basis_transposed",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_basis *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_basis_orthonormalized",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_basis *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_basis_determinant",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_basis *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_basis_rotated",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_vector3 *", "p_axis"],
+          ["const godot_real", "p_phi"]
+        ]
+      },
+      {
+        "name": "godot_basis_scaled",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_vector3 *", "p_scale"]
+        ]
+      },
+      {
+        "name": "godot_basis_get_scale",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_basis *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_basis_get_euler",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_basis *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_basis_tdotx",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_vector3 *", "p_with"]
+        ]
+      },
+      {
+        "name": "godot_basis_tdoty",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_vector3 *", "p_with"]
+        ]
+      },
+      {
+        "name": "godot_basis_tdotz",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_vector3 *", "p_with"]
+        ]
+      },
+      {
+        "name": "godot_basis_xform",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_vector3 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_basis_xform_inv",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_vector3 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_basis_get_orthogonal_index",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_basis *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_basis_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_basis *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_basis_new_with_euler_quat",
+        "return_type": "void",
+        "arguments": [
+          ["godot_basis *", "r_dest"],
+          ["const godot_quat *", "p_euler"]
+        ]
+      },
+      {
+        "name": "godot_basis_get_elements",
+        "return_type": "void",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["godot_vector3 *", "p_elements"]
+        ]
+      },
+      {
+        "name": "godot_basis_get_axis",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_int", "p_axis"]
+        ]
+      },
+      {
+        "name": "godot_basis_set_axis",
+        "return_type": "void",
+        "arguments": [
+          ["godot_basis *", "p_self"],
+          ["const godot_int", "p_axis"],
+          ["const godot_vector3 *", "p_value"]
+        ]
+      },
+      {
+        "name": "godot_basis_get_row",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_int", "p_row"]
+        ]
+      },
+      {
+        "name": "godot_basis_set_row",
+        "return_type": "void",
+        "arguments": [
+          ["godot_basis *", "p_self"],
+          ["const godot_int", "p_row"],
+          ["const godot_vector3 *", "p_value"]
+        ]
+      },
+      {
+        "name": "godot_basis_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_basis *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_basis_operator_add",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_basis *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_basis_operator_subtract",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_basis *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_basis_operator_multiply_vector",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_basis *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_basis_operator_multiply_scalar",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_basis *", "p_self"],
+          ["const godot_real", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_vector3 *", "r_dest"],
+          ["const godot_real", "p_x"],
+          ["const godot_real", "p_y"],
+          ["const godot_real", "p_z"]
+        ]
+      },
+      {
+        "name": "godot_vector3_as_string",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_min_axis",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_max_axis",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_length",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_length_squared",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_is_normalized",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_normalized",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_inverse",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_snapped",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_by"]
+        ]
+      },
+      {
+        "name": "godot_vector3_rotated",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_axis"],
+          ["const godot_real", "p_phi"]
+        ]
+      },
+      {
+        "name": "godot_vector3_linear_interpolate",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"],
+          ["const godot_real", "p_t"]
+        ]
+      },
+      {
+        "name": "godot_vector3_cubic_interpolate",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"],
+          ["const godot_vector3 *", "p_pre_a"],
+          ["const godot_vector3 *", "p_post_b"],
+          ["const godot_real", "p_t"]
+        ]
+      },
+      {
+        "name": "godot_vector3_dot",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_cross",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_outer",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_to_diagonal_matrix",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_abs",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_floor",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_ceil",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_distance_to",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_distance_squared_to",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_angle_to",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_to"]
+        ]
+      },
+      {
+        "name": "godot_vector3_slide",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_n"]
+        ]
+      },
+      {
+        "name": "godot_vector3_bounce",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_n"]
+        ]
+      },
+      {
+        "name": "godot_vector3_reflect",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_n"]
+        ]
+      },
+      {
+        "name": "godot_vector3_operator_add",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_operator_subtract",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_operator_multiply_vector",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_operator_multiply_scalar",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_real", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_operator_divide_vector",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_operator_divide_scalar",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_real", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_operator_less",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_vector3_operator_neg",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_vector3_set_axis",
+        "return_type": "void",
+        "arguments": [
+          ["godot_vector3 *", "p_self"],
+          ["const godot_vector3_axis", "p_axis"],
+          ["const godot_real", "p_val"]
+        ]
+      },
+      {
+        "name": "godot_vector3_get_axis",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_vector3 *", "p_self"],
+          ["const godot_vector3_axis", "p_axis"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_new_copy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array *", "r_dest"],
+          ["const godot_pool_byte_array *", "p_src"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_new_with_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array *", "r_dest"],
+          ["const godot_array *", "p_a"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_append",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array *", "p_self"],
+          ["const uint8_t", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_append_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array *", "p_self"],
+          ["const godot_pool_byte_array *", "p_array"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_insert",
+        "return_type": "godot_error",
+        "arguments": [
+          ["godot_pool_byte_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const uint8_t", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_invert",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_push_back",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array *", "p_self"],
+          ["const uint8_t", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_remove",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_resize",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array *", "p_self"],
+          ["const godot_int", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_read",
+        "return_type": "godot_pool_byte_array_read_access *",
+        "arguments": [
+          ["const godot_pool_byte_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_write",
+        "return_type": "godot_pool_byte_array_write_access *",
+        "arguments": [
+          ["godot_pool_byte_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_set",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const uint8_t", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_get",
+        "return_type": "uint8_t",
+        "arguments": [
+          ["const godot_pool_byte_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_size",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_pool_byte_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_new_copy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array *", "r_dest"],
+          ["const godot_pool_int_array *", "p_src"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_new_with_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array *", "r_dest"],
+          ["const godot_array *", "p_a"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_append",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array *", "p_self"],
+          ["const godot_int", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_append_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array *", "p_self"],
+          ["const godot_pool_int_array *", "p_array"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_insert",
+        "return_type": "godot_error",
+        "arguments": [
+          ["godot_pool_int_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_int", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_invert",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_push_back",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array *", "p_self"],
+          ["const godot_int", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_remove",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_resize",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array *", "p_self"],
+          ["const godot_int", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_read",
+        "return_type": "godot_pool_int_array_read_access *",
+        "arguments": [
+          ["const godot_pool_int_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_write",
+        "return_type": "godot_pool_int_array_write_access *",
+        "arguments": [
+          ["godot_pool_int_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_set",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_int", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_get",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_pool_int_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_size",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_pool_int_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_new_copy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array *", "r_dest"],
+          ["const godot_pool_real_array *", "p_src"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_new_with_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array *", "r_dest"],
+          ["const godot_array *", "p_a"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_append",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array *", "p_self"],
+          ["const godot_real", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_append_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array *", "p_self"],
+          ["const godot_pool_real_array *", "p_array"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_insert",
+        "return_type": "godot_error",
+        "arguments": [
+          ["godot_pool_real_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_real", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_invert",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_push_back",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array *", "p_self"],
+          ["const godot_real", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_remove",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_resize",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array *", "p_self"],
+          ["const godot_int", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_read",
+        "return_type": "godot_pool_real_array_read_access *",
+        "arguments": [
+          ["const godot_pool_real_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_write",
+        "return_type": "godot_pool_real_array_write_access *",
+        "arguments": [
+          ["godot_pool_real_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_set",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_real", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_get",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_pool_real_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_size",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_pool_real_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_new_copy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array *", "r_dest"],
+          ["const godot_pool_string_array *", "p_src"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_new_with_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array *", "r_dest"],
+          ["const godot_array *", "p_a"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_append",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array *", "p_self"],
+          ["const godot_string *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_append_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array *", "p_self"],
+          ["const godot_pool_string_array *", "p_array"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_insert",
+        "return_type": "godot_error",
+        "arguments": [
+          ["godot_pool_string_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_string *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_invert",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_push_back",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array *", "p_self"],
+          ["const godot_string *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_remove",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_resize",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array *", "p_self"],
+          ["const godot_int", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_read",
+        "return_type": "godot_pool_string_array_read_access *",
+        "arguments": [
+          ["const godot_pool_string_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_write",
+        "return_type": "godot_pool_string_array_write_access *",
+        "arguments": [
+          ["godot_pool_string_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_set",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_string *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_get",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_pool_string_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_size",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_pool_string_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_new_copy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array *", "r_dest"],
+          ["const godot_pool_vector2_array *", "p_src"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_new_with_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array *", "r_dest"],
+          ["const godot_array *", "p_a"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_append",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array *", "p_self"],
+          ["const godot_vector2 *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_append_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array *", "p_self"],
+          ["const godot_pool_vector2_array *", "p_array"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_insert",
+        "return_type": "godot_error",
+        "arguments": [
+          ["godot_pool_vector2_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_vector2 *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_invert",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_push_back",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array *", "p_self"],
+          ["const godot_vector2 *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_remove",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_resize",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array *", "p_self"],
+          ["const godot_int", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_read",
+        "return_type": "godot_pool_vector2_array_read_access *",
+        "arguments": [
+          ["const godot_pool_vector2_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_write",
+        "return_type": "godot_pool_vector2_array_write_access *",
+        "arguments": [
+          ["godot_pool_vector2_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_set",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_vector2 *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_get",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_pool_vector2_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_size",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_pool_vector2_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_new_copy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array *", "r_dest"],
+          ["const godot_pool_vector3_array *", "p_src"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_new_with_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array *", "r_dest"],
+          ["const godot_array *", "p_a"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_append",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array *", "p_self"],
+          ["const godot_vector3 *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_append_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array *", "p_self"],
+          ["const godot_pool_vector3_array *", "p_array"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_insert",
+        "return_type": "godot_error",
+        "arguments": [
+          ["godot_pool_vector3_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_vector3 *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_invert",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_push_back",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array *", "p_self"],
+          ["const godot_vector3 *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_remove",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_resize",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array *", "p_self"],
+          ["const godot_int", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_read",
+        "return_type": "godot_pool_vector3_array_read_access *",
+        "arguments": [
+          ["const godot_pool_vector3_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_write",
+        "return_type": "godot_pool_vector3_array_write_access *",
+        "arguments": [
+          ["godot_pool_vector3_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_set",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_vector3 *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_get",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_pool_vector3_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_size",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_pool_vector3_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_new_copy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array *", "r_dest"],
+          ["const godot_pool_color_array *", "p_src"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_new_with_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array *", "r_dest"],
+          ["const godot_array *", "p_a"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_append",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array *", "p_self"],
+          ["const godot_color *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_append_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array *", "p_self"],
+          ["const godot_pool_color_array *", "p_array"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_insert",
+        "return_type": "godot_error",
+        "arguments": [
+          ["godot_pool_color_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_color *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_invert",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_push_back",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array *", "p_self"],
+          ["const godot_color *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_remove",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_resize",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array *", "p_self"],
+          ["const godot_int", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_read",
+        "return_type": "godot_pool_color_array_read_access *",
+        "arguments": [
+          ["const godot_pool_color_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_write",
+        "return_type": "godot_pool_color_array_write_access *",
+        "arguments": [
+          ["godot_pool_color_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_set",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_color *", "p_data"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_get",
+        "return_type": "godot_color",
+        "arguments": [
+          ["const godot_pool_color_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_size",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_pool_color_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_read_access_copy",
+        "return_type": "godot_pool_byte_array_read_access *",
+        "arguments": [
+          ["const godot_pool_byte_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_read_access_ptr",
+        "return_type": "const uint8_t *",
+        "arguments": [
+          ["const godot_pool_byte_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_read_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array_read_access *", "p_read"],
+          ["godot_pool_byte_array_read_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_read_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_read_access_copy",
+        "return_type": "godot_pool_int_array_read_access *",
+        "arguments": [
+          ["const godot_pool_int_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_read_access_ptr",
+        "return_type": "const godot_int *",
+        "arguments": [
+          ["const godot_pool_int_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_read_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array_read_access *", "p_read"],
+          ["godot_pool_int_array_read_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_read_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_read_access_copy",
+        "return_type": "godot_pool_real_array_read_access *",
+        "arguments": [
+          ["const godot_pool_real_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_read_access_ptr",
+        "return_type": "const godot_real *",
+        "arguments": [
+          ["const godot_pool_real_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_read_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array_read_access *", "p_read"],
+          ["godot_pool_real_array_read_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_read_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_read_access_copy",
+        "return_type": "godot_pool_string_array_read_access *",
+        "arguments": [
+          ["const godot_pool_string_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_read_access_ptr",
+        "return_type": "const godot_string *",
+        "arguments": [
+          ["const godot_pool_string_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_read_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array_read_access *", "p_read"],
+          ["godot_pool_string_array_read_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_read_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_read_access_copy",
+        "return_type": "godot_pool_vector2_array_read_access *",
+        "arguments": [
+          ["const godot_pool_vector2_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_read_access_ptr",
+        "return_type": "const godot_vector2 *",
+        "arguments": [
+          ["const godot_pool_vector2_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_read_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array_read_access *", "p_read"],
+          ["godot_pool_vector2_array_read_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_read_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_read_access_copy",
+        "return_type": "godot_pool_vector3_array_read_access *",
+        "arguments": [
+          ["const godot_pool_vector3_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_read_access_ptr",
+        "return_type": "const godot_vector3 *",
+        "arguments": [
+          ["const godot_pool_vector3_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_read_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array_read_access *", "p_read"],
+          ["godot_pool_vector3_array_read_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_read_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_read_access_copy",
+        "return_type": "godot_pool_color_array_read_access *",
+        "arguments": [
+          ["const godot_pool_color_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_read_access_ptr",
+        "return_type": "const godot_color *",
+        "arguments": [
+          ["const godot_pool_color_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_read_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array_read_access *", "p_read"],
+          ["godot_pool_color_array_read_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_read_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array_read_access *", "p_read"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_write_access_copy",
+        "return_type": "godot_pool_byte_array_write_access *",
+        "arguments": [
+          ["const godot_pool_byte_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_write_access_ptr",
+        "return_type": "uint8_t *",
+        "arguments": [
+          ["const godot_pool_byte_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_write_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array_write_access *", "p_write"],
+          ["godot_pool_byte_array_write_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_byte_array_write_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_byte_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_write_access_copy",
+        "return_type": "godot_pool_int_array_write_access *",
+        "arguments": [
+          ["const godot_pool_int_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_write_access_ptr",
+        "return_type": "godot_int *",
+        "arguments": [
+          ["const godot_pool_int_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_write_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array_write_access *", "p_write"],
+          ["godot_pool_int_array_write_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_int_array_write_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_int_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_write_access_copy",
+        "return_type": "godot_pool_real_array_write_access *",
+        "arguments": [
+          ["const godot_pool_real_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_write_access_ptr",
+        "return_type": "godot_real *",
+        "arguments": [
+          ["const godot_pool_real_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_write_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array_write_access *", "p_write"],
+          ["godot_pool_real_array_write_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_real_array_write_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_real_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_write_access_copy",
+        "return_type": "godot_pool_string_array_write_access *",
+        "arguments": [
+          ["const godot_pool_string_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_write_access_ptr",
+        "return_type": "godot_string *",
+        "arguments": [
+          ["const godot_pool_string_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_write_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array_write_access *", "p_write"],
+          ["godot_pool_string_array_write_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_string_array_write_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_string_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_write_access_copy",
+        "return_type": "godot_pool_vector2_array_write_access *",
+        "arguments": [
+          ["const godot_pool_vector2_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_write_access_ptr",
+        "return_type": "godot_vector2 *",
+        "arguments": [
+          ["const godot_pool_vector2_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_write_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array_write_access *", "p_write"],
+          ["godot_pool_vector2_array_write_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector2_array_write_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector2_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_write_access_copy",
+        "return_type": "godot_pool_vector3_array_write_access *",
+        "arguments": [
+          ["const godot_pool_vector3_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_write_access_ptr",
+        "return_type": "godot_vector3 *",
+        "arguments": [
+          ["const godot_pool_vector3_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_write_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array_write_access *", "p_write"],
+          ["godot_pool_vector3_array_write_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_vector3_array_write_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_vector3_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_write_access_copy",
+        "return_type": "godot_pool_color_array_write_access *",
+        "arguments": [
+          ["const godot_pool_color_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_write_access_ptr",
+        "return_type": "godot_color *",
+        "arguments": [
+          ["const godot_pool_color_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_write_access_operator_assign",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array_write_access *", "p_write"],
+          ["godot_pool_color_array_write_access *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_pool_color_array_write_access_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_pool_color_array_write_access *", "p_write"]
+        ]
+      },
+      {
+        "name": "godot_array_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_array_new_copy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "r_dest"],
+          ["const godot_array *", "p_src"]
+        ]
+      },
+      {
+        "name": "godot_array_new_pool_color_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "r_dest"],
+          ["const godot_pool_color_array *", "p_pca"]
+        ]
+      },
+      {
+        "name": "godot_array_new_pool_vector3_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "r_dest"],
+          ["const godot_pool_vector3_array *", "p_pv3a"]
+        ]
+      },
+      {
+        "name": "godot_array_new_pool_vector2_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "r_dest"],
+          ["const godot_pool_vector2_array *", "p_pv2a"]
+        ]
+      },
+      {
+        "name": "godot_array_new_pool_string_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "r_dest"],
+          ["const godot_pool_string_array *", "p_psa"]
+        ]
+      },
+      {
+        "name": "godot_array_new_pool_real_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "r_dest"],
+          ["const godot_pool_real_array *", "p_pra"]
+        ]
+      },
+      {
+        "name": "godot_array_new_pool_int_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "r_dest"],
+          ["const godot_pool_int_array *", "p_pia"]
+        ]
+      },
+      {
+        "name": "godot_array_new_pool_byte_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "r_dest"],
+          ["const godot_pool_byte_array *", "p_pba"]
+        ]
+      },
+      {
+        "name": "godot_array_set",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"],
+          ["const godot_int", "p_idx"],
+          ["const godot_variant *", "p_value"]
+        ]
+      },
+      {
+        "name": "godot_array_get",
+        "return_type": "godot_variant",
+        "arguments": [
+          ["const godot_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_array_operator_index",
+        "return_type": "godot_variant *",
+        "arguments": [
+          ["godot_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_array_operator_index_const",
+        "return_type": "const godot_variant *",
+        "arguments": [
+          ["const godot_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_array_append",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"],
+          ["const godot_variant *", "p_value"]
+        ]
+      },
+      {
+        "name": "godot_array_clear",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_array_count",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_array *", "p_self"],
+          ["const godot_variant *", "p_value"]
+        ]
+      },
+      {
+        "name": "godot_array_empty",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_array_erase",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"],
+          ["const godot_variant *", "p_value"]
+        ]
+      },
+      {
+        "name": "godot_array_front",
+        "return_type": "godot_variant",
+        "arguments": [
+          ["const godot_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_array_back",
+        "return_type": "godot_variant",
+        "arguments": [
+          ["const godot_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_array_find",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_array *", "p_self"],
+          ["const godot_variant *", "p_what"],
+          ["const godot_int", "p_from"]
+        ]
+      },
+      {
+        "name": "godot_array_find_last",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_array *", "p_self"],
+          ["const godot_variant *", "p_what"]
+        ]
+      },
+      {
+        "name": "godot_array_has",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_array *", "p_self"],
+          ["const godot_variant *", "p_value"]
+        ]
+      },
+      {
+        "name": "godot_array_hash",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_array_insert",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"],
+          ["const godot_int", "p_pos"],
+          ["const godot_variant *", "p_value"]
+        ]
+      },
+      {
+        "name": "godot_array_invert",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_array_pop_back",
+        "return_type": "godot_variant",
+        "arguments": [
+          ["godot_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_array_pop_front",
+        "return_type": "godot_variant",
+        "arguments": [
+          ["godot_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_array_push_back",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"],
+          ["const godot_variant *", "p_value"]
+        ]
+      },
+      {
+        "name": "godot_array_push_front",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"],
+          ["const godot_variant *", "p_value"]
+        ]
+      },
+      {
+        "name": "godot_array_remove",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_array_resize",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"],
+          ["const godot_int", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_array_rfind",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_array *", "p_self"],
+          ["const godot_variant *", "p_what"],
+          ["const godot_int", "p_from"]
+        ]
+      },
+      {
+        "name": "godot_array_size",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_array_sort",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_array_sort_custom",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"],
+          ["godot_object *", "p_obj"],
+          ["const godot_string *", "p_func"]
+        ]
+      },
+      {
+        "name": "godot_array_bsearch",
+        "return_type": "godot_int",
+        "arguments": [
+          ["godot_array *", "p_self"],
+          ["const godot_variant *", "p_value"],
+          ["const godot_bool", "p_before"]
+        ]
+      },
+      {
+        "name": "godot_array_bsearch_custom",
+        "return_type": "godot_int",
+        "arguments": [
+          ["godot_array *", "p_self"],
+          ["const godot_variant *", "p_value"],
+          ["godot_object *", "p_obj"],
+          ["const godot_string *", "p_func"],
+          ["const godot_bool", "p_before"]
+        ]
+      },
+      {
+        "name": "godot_array_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_array *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_dictionary *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_new_copy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_dictionary *", "r_dest"],
+          ["const godot_dictionary *", "p_src"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_dictionary *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_size",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_dictionary *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_empty",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_dictionary *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_clear",
+        "return_type": "void",
+        "arguments": [
+          ["godot_dictionary *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_has",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_dictionary *", "p_self"],
+          ["const godot_variant *", "p_key"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_has_all",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_dictionary *", "p_self"],
+          ["const godot_array *", "p_keys"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_erase",
+        "return_type": "void",
+        "arguments": [
+          ["godot_dictionary *", "p_self"],
+          ["const godot_variant *", "p_key"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_hash",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_dictionary *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_keys",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_dictionary *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_values",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_dictionary *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_get",
+        "return_type": "godot_variant",
+        "arguments": [
+          ["const godot_dictionary *", "p_self"],
+          ["const godot_variant *", "p_key"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_set",
+        "return_type": "void",
+        "arguments": [
+          ["godot_dictionary *", "p_self"],
+          ["const godot_variant *", "p_key"],
+          ["const godot_variant *", "p_value"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_operator_index",
+        "return_type": "godot_variant *",
+        "arguments": [
+          ["godot_dictionary *", "p_self"],
+          ["const godot_variant *", "p_key"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_operator_index_const",
+        "return_type": "const godot_variant *",
+        "arguments": [
+          ["const godot_dictionary *", "p_self"],
+          ["const godot_variant *", "p_key"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_next",
+        "return_type": "godot_variant *",
+        "arguments": [
+          ["const godot_dictionary *", "p_self"],
+          ["const godot_variant *", "p_key"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_dictionary *", "p_self"],
+          ["const godot_dictionary *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_dictionary_to_json",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_dictionary *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_node_path_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_node_path *", "r_dest"],
+          ["const godot_string *", "p_from"]
+        ]
+      },
+      {
+        "name": "godot_node_path_new_copy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_node_path *", "r_dest"],
+          ["const godot_node_path *", "p_src"]
+        ]
+      },
+      {
+        "name": "godot_node_path_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_node_path *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_node_path_as_string",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_node_path *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_node_path_is_absolute",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_node_path *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_node_path_get_name_count",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_node_path *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_node_path_get_name",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_node_path *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_node_path_get_subname_count",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_node_path *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_node_path_get_subname",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_node_path *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_node_path_get_concatenated_subnames",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_node_path *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_node_path_is_empty",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_node_path *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_node_path_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_node_path *", "p_self"],
+          ["const godot_node_path *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_plane_new_with_reals",
+        "return_type": "void",
+        "arguments": [
+          ["godot_plane *", "r_dest"],
+          ["const godot_real", "p_a"],
+          ["const godot_real", "p_b"],
+          ["const godot_real", "p_c"],
+          ["const godot_real", "p_d"]
+        ]
+      },
+      {
+        "name": "godot_plane_new_with_vectors",
+        "return_type": "void",
+        "arguments": [
+          ["godot_plane *", "r_dest"],
+          ["const godot_vector3 *", "p_v1"],
+          ["const godot_vector3 *", "p_v2"],
+          ["const godot_vector3 *", "p_v3"]
+        ]
+      },
+      {
+        "name": "godot_plane_new_with_normal",
+        "return_type": "void",
+        "arguments": [
+          ["godot_plane *", "r_dest"],
+          ["const godot_vector3 *", "p_normal"],
+          ["const godot_real", "p_d"]
+        ]
+      },
+      {
+        "name": "godot_plane_as_string",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_plane *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_plane_normalized",
+        "return_type": "godot_plane",
+        "arguments": [
+          ["const godot_plane *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_plane_center",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_plane *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_plane_get_any_point",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_plane *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_plane_is_point_over",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_plane *", "p_self"],
+          ["const godot_vector3 *", "p_point"]
+        ]
+      },
+      {
+        "name": "godot_plane_distance_to",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_plane *", "p_self"],
+          ["const godot_vector3 *", "p_point"]
+        ]
+      },
+      {
+        "name": "godot_plane_has_point",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_plane *", "p_self"],
+          ["const godot_vector3 *", "p_point"],
+          ["const godot_real", "p_epsilon"]
+        ]
+      },
+      {
+        "name": "godot_plane_project",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_plane *", "p_self"],
+          ["const godot_vector3 *", "p_point"]
+        ]
+      },
+      {
+        "name": "godot_plane_intersect_3",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_plane *", "p_self"],
+          ["godot_vector3 *", "r_dest"],
+          ["const godot_plane *", "p_b"],
+          ["const godot_plane *", "p_c"]
+        ]
+      },
+      {
+        "name": "godot_plane_intersects_ray",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_plane *", "p_self"],
+          ["godot_vector3 *", "r_dest"],
+          ["const godot_vector3 *", "p_from"],
+          ["const godot_vector3 *", "p_dir"]
+        ]
+      },
+      {
+        "name": "godot_plane_intersects_segment",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_plane *", "p_self"],
+          ["godot_vector3 *", "r_dest"],
+          ["const godot_vector3 *", "p_begin"],
+          ["const godot_vector3 *", "p_end"]
+        ]
+      },
+      {
+        "name": "godot_plane_operator_neg",
+        "return_type": "godot_plane",
+        "arguments": [
+          ["const godot_plane *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_plane_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_plane *", "p_self"],
+          ["const godot_plane *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_plane_set_normal",
+        "return_type": "void",
+        "arguments": [
+          ["godot_plane *", "p_self"],
+          ["const godot_vector3 *", "p_normal"]
+        ]
+      },
+      {
+        "name": "godot_plane_get_normal",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_plane *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_plane_get_d",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_plane *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_plane_set_d",
+        "return_type": "void",
+        "arguments": [
+          ["godot_plane *", "p_self"],
+          ["const godot_real", "p_d"]
+        ]
+      },
+      {
+        "name": "godot_rect2_new_with_position_and_size",
+        "return_type": "void",
+        "arguments": [
+          ["godot_rect2 *", "r_dest"],
+          ["const godot_vector2 *", "p_pos"],
+          ["const godot_vector2 *", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_rect2_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_rect2 *", "r_dest"],
+          ["const godot_real", "p_x"],
+          ["const godot_real", "p_y"],
+          ["const godot_real", "p_width"],
+          ["const godot_real", "p_height"]
+        ]
+      },
+      {
+        "name": "godot_rect2_as_string",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_rect2_get_area",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_rect2_intersects",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"],
+          ["const godot_rect2 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_rect2_encloses",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"],
+          ["const godot_rect2 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_rect2_has_no_area",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_rect2_clip",
+        "return_type": "godot_rect2",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"],
+          ["const godot_rect2 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_rect2_merge",
+        "return_type": "godot_rect2",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"],
+          ["const godot_rect2 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_rect2_has_point",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"],
+          ["const godot_vector2 *", "p_point"]
+        ]
+      },
+      {
+        "name": "godot_rect2_grow",
+        "return_type": "godot_rect2",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"],
+          ["const godot_real", "p_by"]
+        ]
+      },
+      {
+        "name": "godot_rect2_expand",
+        "return_type": "godot_rect2",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"],
+          ["const godot_vector2 *", "p_to"]
+        ]
+      },
+      {
+        "name": "godot_rect2_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"],
+          ["const godot_rect2 *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_rect2_get_position",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_rect2_get_size",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_rect2 *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_rect2_set_position",
+        "return_type": "void",
+        "arguments": [
+          ["godot_rect2 *", "p_self"],
+          ["const godot_vector2 *", "p_pos"]
+        ]
+      },
+      {
+        "name": "godot_rect2_set_size",
+        "return_type": "void",
+        "arguments": [
+          ["godot_rect2 *", "p_self"],
+          ["const godot_vector2 *", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_aabb_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_aabb *", "r_dest"],
+          ["const godot_vector3 *", "p_pos"],
+          ["const godot_vector3 *", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_aabb_get_position",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_aabb *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_aabb_set_position",
+        "return_type": "void",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_vector3 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_aabb_get_size",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_aabb *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_aabb_set_size",
+        "return_type": "void",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_vector3 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_aabb_as_string",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_aabb *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_aabb_get_area",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_aabb *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_aabb_has_no_area",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_aabb *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_aabb_has_no_surface",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_aabb *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_aabb_intersects",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_aabb *", "p_with"]
+        ]
+      },
+      {
+        "name": "godot_aabb_encloses",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_aabb *", "p_with"]
+        ]
+      },
+      {
+        "name": "godot_aabb_merge",
+        "return_type": "godot_aabb",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_aabb *", "p_with"]
+        ]
+      },
+      {
+        "name": "godot_aabb_intersection",
+        "return_type": "godot_aabb",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_aabb *", "p_with"]
+        ]
+      },
+      {
+        "name": "godot_aabb_intersects_plane",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_plane *", "p_plane"]
+        ]
+      },
+      {
+        "name": "godot_aabb_intersects_segment",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_vector3 *", "p_from"],
+          ["const godot_vector3 *", "p_to"]
+        ]
+      },
+      {
+        "name": "godot_aabb_has_point",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_vector3 *", "p_point"]
+        ]
+      },
+      {
+        "name": "godot_aabb_get_support",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_vector3 *", "p_dir"]
+        ]
+      },
+      {
+        "name": "godot_aabb_get_longest_axis",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_aabb *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_aabb_get_longest_axis_index",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_aabb *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_aabb_get_longest_axis_size",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_aabb *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_aabb_get_shortest_axis",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_aabb *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_aabb_get_shortest_axis_index",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_aabb *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_aabb_get_shortest_axis_size",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_aabb *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_aabb_expand",
+        "return_type": "godot_aabb",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_vector3 *", "p_to_point"]
+        ]
+      },
+      {
+        "name": "godot_aabb_grow",
+        "return_type": "godot_aabb",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_real", "p_by"]
+        ]
+      },
+      {
+        "name": "godot_aabb_get_endpoint",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_aabb_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_aabb *", "p_self"],
+          ["const godot_aabb *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_rid_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_rid *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_rid_get_id",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_rid *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_rid_new_with_resource",
+        "return_type": "void",
+        "arguments": [
+          ["godot_rid *", "r_dest"],
+          ["const godot_object *", "p_from"]
+        ]
+      },
+      {
+        "name": "godot_rid_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_rid *", "p_self"],
+          ["const godot_rid *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_rid_operator_less",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_rid *", "p_self"],
+          ["const godot_rid *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_transform_new_with_axis_origin",
+        "return_type": "void",
+        "arguments": [
+          ["godot_transform *", "r_dest"],
+          ["const godot_vector3 *", "p_x_axis"],
+          ["const godot_vector3 *", "p_y_axis"],
+          ["const godot_vector3 *", "p_z_axis"],
+          ["const godot_vector3 *", "p_origin"]
+        ]
+      },
+      {
+        "name": "godot_transform_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_transform *", "r_dest"],
+          ["const godot_basis *", "p_basis"],
+          ["const godot_vector3 *", "p_origin"]
+        ]
+      },
+      {
+        "name": "godot_transform_get_basis",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_transform *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform_set_basis",
+        "return_type": "void",
+        "arguments": [
+          ["godot_transform *", "p_self"],
+          ["const godot_basis *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform_get_origin",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_transform *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform_set_origin",
+        "return_type": "void",
+        "arguments": [
+          ["godot_transform *", "p_self"],
+          ["const godot_vector3 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform_as_string",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_transform *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform_inverse",
+        "return_type": "godot_transform",
+        "arguments": [
+          ["const godot_transform *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform_affine_inverse",
+        "return_type": "godot_transform",
+        "arguments": [
+          ["const godot_transform *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform_orthonormalized",
+        "return_type": "godot_transform",
+        "arguments": [
+          ["const godot_transform *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform_rotated",
+        "return_type": "godot_transform",
+        "arguments": [
+          ["const godot_transform *", "p_self"],
+          ["const godot_vector3 *", "p_axis"],
+          ["const godot_real", "p_phi"]
+        ]
+      },
+      {
+        "name": "godot_transform_scaled",
+        "return_type": "godot_transform",
+        "arguments": [
+          ["const godot_transform *", "p_self"],
+          ["const godot_vector3 *", "p_scale"]
+        ]
+      },
+      {
+        "name": "godot_transform_translated",
+        "return_type": "godot_transform",
+        "arguments": [
+          ["const godot_transform *", "p_self"],
+          ["const godot_vector3 *", "p_ofs"]
+        ]
+      },
+      {
+        "name": "godot_transform_looking_at",
+        "return_type": "godot_transform",
+        "arguments": [
+          ["const godot_transform *", "p_self"],
+          ["const godot_vector3 *", "p_target"],
+          ["const godot_vector3 *", "p_up"]
+        ]
+      },
+      {
+        "name": "godot_transform_xform_plane",
+        "return_type": "godot_plane",
+        "arguments": [
+          ["const godot_transform *", "p_self"],
+          ["const godot_plane *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform_xform_inv_plane",
+        "return_type": "godot_plane",
+        "arguments": [
+          ["const godot_transform *", "p_self"],
+          ["const godot_plane *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform_new_identity",
+        "return_type": "void",
+        "arguments": [
+          ["godot_transform *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_transform_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_transform *", "p_self"],
+          ["const godot_transform *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_transform_operator_multiply",
+        "return_type": "godot_transform",
+        "arguments": [
+          ["const godot_transform *", "p_self"],
+          ["const godot_transform *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_transform_xform_vector3",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_transform *", "p_self"],
+          ["const godot_vector3 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform_xform_inv_vector3",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_transform *", "p_self"],
+          ["const godot_vector3 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform_xform_aabb",
+        "return_type": "godot_aabb",
+        "arguments": [
+          ["const godot_transform *", "p_self"],
+          ["const godot_aabb *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform_xform_inv_aabb",
+        "return_type": "godot_aabb",
+        "arguments": [
+          ["const godot_transform *", "p_self"],
+          ["const godot_aabb *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_transform2d *", "r_dest"],
+          ["const godot_real", "p_rot"],
+          ["const godot_vector2 *", "p_pos"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_new_axis_origin",
+        "return_type": "void",
+        "arguments": [
+          ["godot_transform2d *", "r_dest"],
+          ["const godot_vector2 *", "p_x_axis"],
+          ["const godot_vector2 *", "p_y_axis"],
+          ["const godot_vector2 *", "p_origin"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_as_string",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_inverse",
+        "return_type": "godot_transform2d",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_affine_inverse",
+        "return_type": "godot_transform2d",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_get_rotation",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_get_origin",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_get_scale",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_orthonormalized",
+        "return_type": "godot_transform2d",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_rotated",
+        "return_type": "godot_transform2d",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"],
+          ["const godot_real", "p_phi"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_scaled",
+        "return_type": "godot_transform2d",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"],
+          ["const godot_vector2 *", "p_scale"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_translated",
+        "return_type": "godot_transform2d",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"],
+          ["const godot_vector2 *", "p_offset"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_xform_vector2",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"],
+          ["const godot_vector2 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_xform_inv_vector2",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"],
+          ["const godot_vector2 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_basis_xform_vector2",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"],
+          ["const godot_vector2 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_basis_xform_inv_vector2",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"],
+          ["const godot_vector2 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_interpolate_with",
+        "return_type": "godot_transform2d",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"],
+          ["const godot_transform2d *", "p_m"],
+          ["const godot_real", "p_c"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"],
+          ["const godot_transform2d *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_operator_multiply",
+        "return_type": "godot_transform2d",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"],
+          ["const godot_transform2d *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_new_identity",
+        "return_type": "void",
+        "arguments": [
+          ["godot_transform2d *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_xform_rect2",
+        "return_type": "godot_rect2",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"],
+          ["const godot_rect2 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_transform2d_xform_inv_rect2",
+        "return_type": "godot_rect2",
+        "arguments": [
+          ["const godot_transform2d *", "p_self"],
+          ["const godot_rect2 *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_variant_get_type",
+        "return_type": "godot_variant_type",
+        "arguments": [
+          ["const godot_variant *", "p_v"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_copy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_variant *", "p_src"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_nil",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_bool",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_bool", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_uint",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const uint64_t", "p_i"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_int",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const int64_t", "p_i"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_real",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const double", "p_r"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_string",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_string *", "p_s"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_vector2",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_vector2 *", "p_v2"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_rect2",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_rect2 *", "p_rect2"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_vector3",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_vector3 *", "p_v3"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_transform2d",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_transform2d *", "p_t2d"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_plane",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_plane *", "p_plane"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_quat",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_quat *", "p_quat"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_aabb",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_aabb *", "p_aabb"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_basis",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_basis *", "p_basis"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_transform",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_transform *", "p_trans"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_color",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_color *", "p_color"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_node_path",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_node_path *", "p_np"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_rid",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_rid *", "p_rid"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_object",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_object *", "p_obj"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_dictionary",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_dictionary *", "p_dict"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_array *", "p_arr"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_pool_byte_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_pool_byte_array *", "p_pba"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_pool_int_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_pool_int_array *", "p_pia"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_pool_real_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_pool_real_array *", "p_pra"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_pool_string_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_pool_string_array *", "p_psa"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_pool_vector2_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_pool_vector2_array *", "p_pv2a"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_pool_vector3_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_pool_vector3_array *", "p_pv3a"]
+        ]
+      },
+      {
+        "name": "godot_variant_new_pool_color_array",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "r_dest"],
+          ["const godot_pool_color_array *", "p_pca"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_bool",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_uint",
+        "return_type": "uint64_t",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_int",
+        "return_type": "int64_t",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_real",
+        "return_type": "double",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_string",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_vector2",
+        "return_type": "godot_vector2",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_rect2",
+        "return_type": "godot_rect2",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_vector3",
+        "return_type": "godot_vector3",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_transform2d",
+        "return_type": "godot_transform2d",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_plane",
+        "return_type": "godot_plane",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_quat",
+        "return_type": "godot_quat",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_aabb",
+        "return_type": "godot_aabb",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_basis",
+        "return_type": "godot_basis",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_transform",
+        "return_type": "godot_transform",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_color",
+        "return_type": "godot_color",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_node_path",
+        "return_type": "godot_node_path",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_rid",
+        "return_type": "godot_rid",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_object",
+        "return_type": "godot_object *",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_dictionary",
+        "return_type": "godot_dictionary",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_array",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_pool_byte_array",
+        "return_type": "godot_pool_byte_array",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_pool_int_array",
+        "return_type": "godot_pool_int_array",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_pool_real_array",
+        "return_type": "godot_pool_real_array",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_pool_string_array",
+        "return_type": "godot_pool_string_array",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_pool_vector2_array",
+        "return_type": "godot_pool_vector2_array",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_pool_vector3_array",
+        "return_type": "godot_pool_vector3_array",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_as_pool_color_array",
+        "return_type": "godot_pool_color_array",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_call",
+        "return_type": "godot_variant",
+        "arguments": [
+          ["godot_variant *", "p_self"],
+          ["const godot_string *", "p_method"],
+          ["const godot_variant **", "p_args"],
+          ["const godot_int", "p_argcount"],
+          ["godot_variant_call_error *", "r_error"]
+        ]
+      },
+      {
+        "name": "godot_variant_has_method",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_variant *", "p_self"],
+          ["const godot_string *", "p_method"]
+        ]
+      },
+      {
+        "name": "godot_variant_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_variant *", "p_self"],
+          ["const godot_variant *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_variant_operator_less",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_variant *", "p_self"],
+          ["const godot_variant *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_variant_hash_compare",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_variant *", "p_self"],
+          ["const godot_variant *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_variant_booleanize",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_variant_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_variant *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_char_string_length",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_char_string *", "p_cs"]
+        ]
+      },
+      {
+        "name": "godot_char_string_get_data",
+        "return_type": "const char *",
+        "arguments": [
+          ["const godot_char_string *", "p_cs"]
+        ]
+      },
+      {
+        "name": "godot_char_string_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_char_string *", "p_cs"]
+        ]
+      },
+      {
+        "name": "godot_string_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_string *", "r_dest"]
+        ]
+      },
+      {
+        "name": "godot_string_new_copy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_string *", "r_dest"],
+          ["const godot_string *", "p_src"]
+        ]
+      },
+      {
+        "name": "godot_string_new_with_wide_string",
+        "return_type": "void",
+        "arguments": [
+          ["godot_string *", "r_dest"],
+          ["const wchar_t *", "p_contents"],
+          ["const int", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_string_operator_index",
+        "return_type": "wchar_t *",
+        "arguments": [
+          ["godot_string *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_string_operator_index_const",
+        "return_type": "wchar_t",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_string_wide_str",
+        "return_type": "const wchar_t *",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_string_operator_less",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_string_operator_plus",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_b"]
+        ]
+      },
+      {
+        "name": "godot_string_length",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_casecmp_to",
+        "return_type": "signed char",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_str"]
+        ]
+      },
+      {
+        "name": "godot_string_nocasecmp_to",
+        "return_type": "signed char",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_str"]
+        ]
+      },
+      {
+        "name": "godot_string_naturalnocasecmp_to",
+        "return_type": "signed char",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_str"]
+        ]
+      },
+      {
+        "name": "godot_string_begins_with",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_string"]
+        ]
+      },
+      {
+        "name": "godot_string_begins_with_char_array",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const char *", "p_char_array"]
+        ]
+      },
+      {
+        "name": "godot_string_bigrams",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_chr",
+        "return_type": "godot_string",
+        "arguments": [
+          ["wchar_t", "p_character"]
+        ]
+      },
+      {
+        "name": "godot_string_ends_with",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_string"]
+        ]
+      },
+      {
+        "name": "godot_string_find",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_what"]
+        ]
+      },
+      {
+        "name": "godot_string_find_from",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_what"],
+          ["godot_int", "p_from"]
+        ]
+      },
+      {
+        "name": "godot_string_findmk",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_array *", "p_keys"]
+        ]
+      },
+      {
+        "name": "godot_string_findmk_from",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_array *", "p_keys"],
+          ["godot_int", "p_from"]
+        ]
+      },
+      {
+        "name": "godot_string_findmk_from_in_place",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_array *", "p_keys"],
+          ["godot_int", "p_from"],
+          ["godot_int *", "r_key"]
+        ]
+      },
+      {
+        "name": "godot_string_findn",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_what"]
+        ]
+      },
+      {
+        "name": "godot_string_findn_from",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_what"],
+          ["godot_int", "p_from"]
+        ]
+      },
+      {
+        "name": "godot_string_find_last",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_what"]
+        ]
+      },
+      {
+        "name": "godot_string_format",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_variant *", "p_values"]
+        ]
+      },
+      {
+        "name": "godot_string_format_with_custom_placeholder",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_variant *", "p_values"],
+          ["const char *", "p_placeholder"]
+        ]
+      },
+      {
+        "name": "godot_string_hex_encode_buffer",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const uint8_t *", "p_buffer"],
+          ["godot_int", "p_len"]
+        ]
+      },
+      {
+        "name": "godot_string_hex_to_int",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_hex_to_int_without_prefix",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_insert",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_int", "p_at_pos"],
+          ["godot_string", "p_string"]
+        ]
+      },
+      {
+        "name": "godot_string_is_numeric",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_is_subsequence_of",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_string"]
+        ]
+      },
+      {
+        "name": "godot_string_is_subsequence_ofi",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_string"]
+        ]
+      },
+      {
+        "name": "godot_string_lpad",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_int", "p_min_length"]
+        ]
+      },
+      {
+        "name": "godot_string_lpad_with_custom_character",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_int", "p_min_length"],
+          ["const godot_string *", "p_character"]
+        ]
+      },
+      {
+        "name": "godot_string_match",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_wildcard"]
+        ]
+      },
+      {
+        "name": "godot_string_matchn",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_wildcard"]
+        ]
+      },
+      {
+        "name": "godot_string_md5",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const uint8_t *", "p_md5"]
+        ]
+      },
+      {
+        "name": "godot_string_num",
+        "return_type": "godot_string",
+        "arguments": [
+          ["double", "p_num"]
+        ]
+      },
+      {
+        "name": "godot_string_num_int64",
+        "return_type": "godot_string",
+        "arguments": [
+          ["int64_t", "p_num"],
+          ["godot_int", "p_base"]
+        ]
+      },
+      {
+        "name": "godot_string_num_int64_capitalized",
+        "return_type": "godot_string",
+        "arguments": [
+          ["int64_t", "p_num"],
+          ["godot_int", "p_base"],
+          ["godot_bool", "p_capitalize_hex"]
+        ]
+      },
+      {
+        "name": "godot_string_num_real",
+        "return_type": "godot_string",
+        "arguments": [
+          ["double", "p_num"]
+        ]
+      },
+      {
+        "name": "godot_string_num_scientific",
+        "return_type": "godot_string",
+        "arguments": [
+          ["double", "p_num"]
+        ]
+      },
+      {
+        "name": "godot_string_num_with_decimals",
+        "return_type": "godot_string",
+        "arguments": [
+          ["double", "p_num"],
+          ["godot_int", "p_decimals"]
+        ]
+      },
+      {
+        "name": "godot_string_pad_decimals",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_int", "p_digits"]
+        ]
+      },
+      {
+        "name": "godot_string_pad_zeros",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_int", "p_digits"]
+        ]
+      },
+      {
+        "name": "godot_string_replace_first",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_key"],
+          ["godot_string", "p_with"]
+        ]
+      },
+      {
+        "name": "godot_string_replace",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_key"],
+          ["godot_string", "p_with"]
+        ]
+      },
+      {
+        "name": "godot_string_replacen",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_key"],
+          ["godot_string", "p_with"]
+        ]
+      },
+      {
+        "name": "godot_string_rfind",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_what"]
+        ]
+      },
+      {
+        "name": "godot_string_rfindn",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_what"]
+        ]
+      },
+      {
+        "name": "godot_string_rfind_from",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_what"],
+          ["godot_int", "p_from"]
+        ]
+      },
+      {
+        "name": "godot_string_rfindn_from",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_what"],
+          ["godot_int", "p_from"]
+        ]
+      },
+      {
+        "name": "godot_string_rpad",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_int", "p_min_length"]
+        ]
+      },
+      {
+        "name": "godot_string_rpad_with_custom_character",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_int", "p_min_length"],
+          ["const godot_string *", "p_character"]
+        ]
+      },
+      {
+        "name": "godot_string_similarity",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_string"]
+        ]
+      },
+      {
+        "name": "godot_string_sprintf",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_array *", "p_values"],
+          ["godot_bool *", "p_error"]
+        ]
+      },
+      {
+        "name": "godot_string_substr",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_int", "p_from"],
+          ["godot_int", "p_chars"]
+        ]
+      },
+      {
+        "name": "godot_string_to_double",
+        "return_type": "double",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_to_float",
+        "return_type": "godot_real",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_to_int",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_camelcase_to_underscore",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_camelcase_to_underscore_lowercased",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_capitalize",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_char_to_double",
+        "return_type": "double",
+        "arguments": [
+          ["const char *", "p_what"]
+        ]
+      },
+      {
+        "name": "godot_string_char_to_int",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const char *", "p_what"]
+        ]
+      },
+      {
+        "name": "godot_string_wchar_to_int",
+        "return_type": "int64_t",
+        "arguments": [
+          ["const wchar_t *", "p_str"]
+        ]
+      },
+      {
+        "name": "godot_string_char_to_int_with_len",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const char *", "p_what"],
+          ["godot_int", "p_len"]
+        ]
+      },
+      {
+        "name": "godot_string_char_to_int64_with_len",
+        "return_type": "int64_t",
+        "arguments": [
+          ["const wchar_t *", "p_str"],
+          ["int", "p_len"]
+        ]
+      },
+      {
+        "name": "godot_string_hex_to_int64",
+        "return_type": "int64_t",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_hex_to_int64_with_prefix",
+        "return_type": "int64_t",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_to_int64",
+        "return_type": "int64_t",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_unicode_char_to_double",
+        "return_type": "double",
+        "arguments": [
+          ["const wchar_t *", "p_str"],
+          ["const wchar_t **", "r_end"]
+        ]
+      },
+      {
+        "name": "godot_string_get_slice_count",
+        "return_type": "godot_int",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_splitter"]
+        ]
+      },
+      {
+        "name": "godot_string_get_slice",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_string", "p_splitter"],
+          ["godot_int", "p_slice"]
+        ]
+      },
+      {
+        "name": "godot_string_get_slicec",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["wchar_t", "p_splitter"],
+          ["godot_int", "p_slice"]
+        ]
+      },
+      {
+        "name": "godot_string_split",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_splitter"]
+        ]
+      },
+      {
+        "name": "godot_string_split_allow_empty",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_splitter"]
+        ]
+      },
+      {
+        "name": "godot_string_split_floats",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_splitter"]
+        ]
+      },
+      {
+        "name": "godot_string_split_floats_allows_empty",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_splitter"]
+        ]
+      },
+      {
+        "name": "godot_string_split_floats_mk",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_array *", "p_splitters"]
+        ]
+      },
+      {
+        "name": "godot_string_split_floats_mk_allows_empty",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_array *", "p_splitters"]
+        ]
+      },
+      {
+        "name": "godot_string_split_ints",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_splitter"]
+        ]
+      },
+      {
+        "name": "godot_string_split_ints_allows_empty",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_splitter"]
+        ]
+      },
+      {
+        "name": "godot_string_split_ints_mk",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_array *", "p_splitters"]
+        ]
+      },
+      {
+        "name": "godot_string_split_ints_mk_allows_empty",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_array *", "p_splitters"]
+        ]
+      },
+      {
+        "name": "godot_string_split_spaces",
+        "return_type": "godot_array",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_char_lowercase",
+        "return_type": "wchar_t",
+        "arguments": [
+          ["wchar_t", "p_char"]
+        ]
+      },
+      {
+        "name": "godot_string_char_uppercase",
+        "return_type": "wchar_t",
+        "arguments": [
+          ["wchar_t", "p_char"]
+        ]
+      },
+      {
+        "name": "godot_string_to_lower",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_to_upper",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_get_basename",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_get_extension",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_left",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_int", "p_pos"]
+        ]
+      },
+      {
+        "name": "godot_string_ord_at",
+        "return_type": "wchar_t",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_int", "p_idx"]
+        ]
+      },
+      {
+        "name": "godot_string_plus_file",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_file"]
+        ]
+      },
+      {
+        "name": "godot_string_right",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_int", "p_pos"]
+        ]
+      },
+      {
+        "name": "godot_string_strip_edges",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_bool", "p_left"],
+          ["godot_bool", "p_right"]
+        ]
+      },
+      {
+        "name": "godot_string_strip_escapes",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_erase",
+        "return_type": "void",
+        "arguments": [
+          ["godot_string *", "p_self"],
+          ["godot_int", "p_pos"],
+          ["godot_int", "p_chars"]
+        ]
+      },
+      {
+        "name": "godot_string_ascii",
+        "return_type": "godot_char_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_ascii_extended",
+        "return_type": "godot_char_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_utf8",
+        "return_type": "godot_char_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_parse_utf8",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["godot_string *", "p_self"],
+          ["const char *", "p_utf8"]
+        ]
+      },
+      {
+        "name": "godot_string_parse_utf8_with_len",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["godot_string *", "p_self"],
+          ["const char *", "p_utf8"],
+          ["godot_int", "p_len"]
+        ]
+      },
+      {
+        "name": "godot_string_chars_to_utf8",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const char *", "p_utf8"]
+        ]
+      },
+      {
+        "name": "godot_string_chars_to_utf8_with_len",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const char *", "p_utf8"],
+          ["godot_int", "p_len"]
+        ]
+      },
+      {
+        "name": "godot_string_hash",
+        "return_type": "uint32_t",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_hash64",
+        "return_type": "uint64_t",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_hash_chars",
+        "return_type": "uint32_t",
+        "arguments": [
+          ["const char *", "p_cstr"]
+        ]
+      },
+      {
+        "name": "godot_string_hash_chars_with_len",
+        "return_type": "uint32_t",
+        "arguments": [
+          ["const char *", "p_cstr"],
+          ["godot_int", "p_len"]
+        ]
+      },
+      {
+        "name": "godot_string_hash_utf8_chars",
+        "return_type": "uint32_t",
+        "arguments": [
+          ["const wchar_t *", "p_str"]
+        ]
+      },
+      {
+        "name": "godot_string_hash_utf8_chars_with_len",
+        "return_type": "uint32_t",
+        "arguments": [
+          ["const wchar_t *", "p_str"],
+          ["godot_int", "p_len"]
+        ]
+      },
+      {
+        "name": "godot_string_md5_buffer",
+        "return_type": "godot_pool_byte_array",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_md5_text",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_sha256_buffer",
+        "return_type": "godot_pool_byte_array",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_sha256_text",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_empty",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_get_base_dir",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_get_file",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_humanize_size",
+        "return_type": "godot_string",
+        "arguments": [
+          ["size_t", "p_size"]
+        ]
+      },
+      {
+        "name": "godot_string_is_abs_path",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_is_rel_path",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_is_resource_file",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_path_to",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_path"]
+        ]
+      },
+      {
+        "name": "godot_string_path_to_file",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["const godot_string *", "p_path"]
+        ]
+      },
+      {
+        "name": "godot_string_simplify_path",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_c_escape",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_c_escape_multiline",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_c_unescape",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_http_escape",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_http_unescape",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_json_escape",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_word_wrap",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_int", "p_chars_per_line"]
+        ]
+      },
+      {
+        "name": "godot_string_xml_escape",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_xml_escape_with_quotes",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_xml_unescape",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_percent_decode",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_percent_encode",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_is_valid_float",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_is_valid_hex_number",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"],
+          ["godot_bool", "p_with_prefix"]
+        ]
+      },
+      {
+        "name": "godot_string_is_valid_html_color",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_is_valid_identifier",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_is_valid_integer",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_is_valid_ip_address",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_string *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_name_new",
+        "return_type": "void",
+        "arguments": [
+          ["godot_string_name *", "r_dest"],
+          ["const godot_string *", "p_name"]
+        ]
+      },
+      {
+        "name": "godot_string_name_new_data",
+        "return_type": "void",
+        "arguments": [
+          ["godot_string_name *", "r_dest"],
+          ["const char *", "p_name"]
+        ]
+      },
+      {
+        "name": "godot_string_name_get_name",
+        "return_type": "godot_string",
+        "arguments": [
+          ["const godot_string_name *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_name_get_hash",
+        "return_type": "uint32_t",
+        "arguments": [
+          ["const godot_string_name *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_name_get_data_unique_pointer",
+        "return_type": "const void *",
+        "arguments": [
+          ["const godot_string_name *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_string_name_operator_equal",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string_name *", "p_self"],
+          ["const godot_string_name *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_string_name_operator_less",
+        "return_type": "godot_bool",
+        "arguments": [
+          ["const godot_string_name *", "p_self"],
+          ["const godot_string_name *", "p_other"]
+        ]
+      },
+      {
+        "name": "godot_string_name_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_string_name *", "p_self"]
+        ]
+      },
+      {
+        "name": "godot_object_destroy",
+        "return_type": "void",
+        "arguments": [
+          ["godot_object *", "p_o"]
+        ]
+      },
+      {
+        "name": "godot_global_get_singleton",
+        "return_type": "godot_object *",
+        "arguments": [
+          ["char *", "p_name"]
+        ]
+      },
+      {
+        "name": "godot_method_bind_get_method",
+        "return_type": "godot_method_bind *",
+        "arguments": [
+          ["const char *", "p_classname"],
+          ["const char *", "p_methodname"]
+        ]
+      },
+      {
+        "name": "godot_method_bind_ptrcall",
+        "return_type": "void",
+        "arguments": [
+          ["godot_method_bind *", "p_method_bind"],
+          ["godot_object *", "p_instance"],
+          ["const void **", "p_args"],
+          ["void *", "p_ret"]
+        ]
+      },
+      {
+        "name": "godot_method_bind_call",
+        "return_type": "godot_variant",
+        "arguments": [
+          ["godot_method_bind *", "p_method_bind"],
+          ["godot_object *", "p_instance"],
+          ["const godot_variant **", "p_args"],
+          ["const int", "p_arg_count"],
+          ["godot_variant_call_error *", "p_call_error"]
+        ]
+      },
+      {
+        "name": "godot_get_class_constructor",
+        "return_type": "godot_class_constructor",
+        "arguments": [
+          ["const char *", "p_classname"]
+        ]
+      },
+      {
+        "name": "godot_get_global_constants",
+        "return_type": "godot_dictionary",
+        "arguments": [
+        ]
+      },
+      {
+        "name": "godot_register_native_call_type",
+        "return_type": "void",
+        "arguments": [
+          ["const char *", "call_type"],
+          ["native_call_cb", "p_callback"]
+        ]
+      },
+      {
+        "name": "godot_alloc",
+        "return_type": "void *",
+        "arguments": [
+          ["int", "p_bytes"]
+        ]
+      },
+      {
+        "name": "godot_realloc",
+        "return_type": "void *",
+        "arguments": [
+          ["void *", "p_ptr"],
+          ["int", "p_bytes"]
+        ]
+      },
+      {
+        "name": "godot_free",
+        "return_type": "void",
+        "arguments": [
+          ["void *", "p_ptr"]
+        ]
+      },
+      {
+        "name": "godot_print_error",
+        "return_type": "void",
+        "arguments": [
+          ["const char *", "p_description"],
+          ["const char *", "p_function"],
+          ["const char *", "p_file"],
+          ["int", "p_line"]
+        ]
+      },
+      {
+        "name": "godot_print_warning",
+        "return_type": "void",
+        "arguments": [
+          ["const char *", "p_description"],
+          ["const char *", "p_function"],
+          ["const char *", "p_file"],
+          ["int", "p_line"]
+        ]
+      },
+      {
+        "name": "godot_print",
+        "return_type": "void",
+        "arguments": [
+          ["const godot_string *", "p_message"]
+        ]
+      }
+    ]
+  },
+  "extensions": [
+    {
+      "name": "nativescript",
+      "type": "NATIVESCRIPT",
+      "version": {
+        "major": 1,
+        "minor": 0
+      },
+      "next": {
+        "type": "NATIVESCRIPT",
+        "version": {
+          "major": 1,
+          "minor": 1
+        },
+        "next": null,
+        "api": [
+          {
+            "name": "godot_nativescript_set_method_argument_information",
+            "return_type": "void",
+            "arguments": [
+              ["void *", "p_gdnative_handle"],
+              ["const char *", "p_name"],
+              ["const char *", "p_function_name"],
+              ["int", "p_num_args"],
+              ["const godot_method_arg *", "p_args"]
+            ]
+          },
+          {
+            "name": "godot_nativescript_set_class_documentation",
+            "return_type": "void",
+            "arguments": [
+              ["void *", "p_gdnative_handle"],
+              ["const char *", "p_name"],
+              ["godot_string", "p_documentation"]
+            ]
+          },
+          {
+            "name": "godot_nativescript_set_method_documentation",
+            "return_type": "void",
+            "arguments": [
+              ["void *", "p_gdnative_handle"],
+              ["const char *", "p_name"],
+              ["const char *", "p_function_name"],
+              ["godot_string", "p_documentation"]
+            ]
+          },
+          {
+            "name": "godot_nativescript_set_property_documentation",
+            "return_type": "void",
+            "arguments": [
+              ["void *", "p_gdnative_handle"],
+              ["const char *", "p_name"],
+              ["const char *", "p_path"],
+              ["godot_string", "p_documentation"]
+            ]
+          },
+          {
+            "name": "godot_nativescript_set_signal_documentation",
+            "return_type": "void",
+            "arguments": [
+              ["void *", "p_gdnative_handle"],
+              ["const char *", "p_name"],
+              ["const char *", "p_signal_name"],
+              ["godot_string", "p_documentation"]
+            ]
+          },
+          {
+            "name": "godot_nativescript_set_global_type_tag",
+            "return_type": "void",
+            "arguments": [
+              ["int", "p_idx"],
+              ["const char *", "p_name"],
+              ["const void *", "p_type_tag"]
+            ]
+          },
+          {
+            "name": "godot_nativescript_get_global_type_tag",
+            "return_type": "const void *",
+            "arguments": [
+              ["int", "p_idx"],
+              ["const char *", "p_name"]
+            ]
+          },
+          {
+            "name": "godot_nativescript_set_type_tag",
+            "return_type": "void",
+            "arguments": [
+              ["void *", "p_gdnative_handle"],
+              ["const char *", "p_name"],
+              ["const void *", "p_type_tag"]
+            ]
+          },
+          {
+            "name": "godot_nativescript_get_type_tag",
+            "return_type": "const void *",
+            "arguments": [
+              ["const godot_object *", "p_object"]
+            ]
+          },
+          {
+            "name": "godot_nativescript_register_instance_binding_data_functions",
+            "return_type": "int",
+            "arguments": [
+              ["godot_instance_binding_functions", "p_binding_functions"]
+            ]
+          },
+          {
+            "name": "godot_nativescript_unregister_instance_binding_data_functions",
+            "return_type": "void",
+            "arguments": [
+              ["int", "p_idx"]
+            ]
+          },
+          {
+            "name": "godot_nativescript_get_instance_binding_data",
+            "return_type": "void *",
+            "arguments": [
+              ["int", "p_idx"],
+              ["godot_object *", "p_object"]
+            ]
+          },
+          {
+            "name": "godot_nativescript_profiling_add_data",
+            "return_type": "void",
+            "arguments": [
+              ["const char *", "p_signature"],
+              ["uint64_t", "p_line"]
+            ]
+          }
+        ]
+      },
+      "api": [
+        {
+          "name": "godot_nativescript_register_class",
+          "return_type": "void",
+          "arguments": [
+            ["void *", "p_gdnative_handle"],
+            ["const char *", "p_name"],
+            ["const char *", "p_base"],
+            ["godot_instance_create_func", "p_create_func"],
+            ["godot_instance_destroy_func", "p_destroy_func"]
+          ]
+        },
+        {
+          "name": "godot_nativescript_register_tool_class",
+          "return_type": "void",
+          "arguments": [
+            ["void *", "p_gdnative_handle"],
+            ["const char *", "p_name"],
+            ["const char *", "p_base"],
+            ["godot_instance_create_func", "p_create_func"],
+            ["godot_instance_destroy_func", "p_destroy_func"]
+          ]
+        },
+        {
+          "name": "godot_nativescript_register_method",
+          "return_type": "void",
+          "arguments": [
+            ["void *", "p_gdnative_handle"],
+            ["const char *", "p_name"],
+            ["const char *", "p_function_name"],
+            ["godot_method_attributes", "p_attr"],
+            ["godot_instance_method", "p_method"]
+          ]
+        },
+        {
+          "name": "godot_nativescript_register_property",
+          "return_type": "void",
+          "arguments": [
+            ["void *", "p_gdnative_handle"],
+            ["const char *", "p_name"],
+            ["const char *", "p_path"],
+            ["godot_property_attributes *", "p_attr"],
+            ["godot_property_set_func", "p_set_func"],
+            ["godot_property_get_func", "p_get_func"]
+          ]
+        },
+        {
+          "name": "godot_nativescript_register_signal",
+          "return_type": "void",
+          "arguments": [
+            ["void *", "p_gdnative_handle"],
+            ["const char *", "p_name"],
+            ["const godot_signal *", "p_signal"]
+          ]
+        },
+        {
+          "name": "godot_nativescript_get_userdata",
+          "return_type": "void *",
+          "arguments": [
+            ["godot_object *", "p_instance"]
+          ]
+        }
+      ]
+    },
+    {
+      "name": "pluginscript",
+      "type": "PLUGINSCRIPT",
+      "version": {
+        "major": 1,
+        "minor": 0
+      },
+      "next": null,
+      "api": [
+        {
+          "name": "godot_pluginscript_register_language",
+          "return_type": "void",
+          "arguments": [
+            ["const godot_pluginscript_language_desc *", "language_desc"]
+          ]
+        }
+      ]
+    },
+    {
+      "name": "android",
+      "type": "ANDROID",
+      "version": {
+        "major": 1,
+        "minor": 0
+      },
+      "next": null,
+      "api": [
+        {
+          "name": "godot_android_get_env",
+          "return_type": "JNIEnv*",
+          "arguments": [
+          ]
+        },
+        {
+          "name": "godot_android_get_activity",
+          "return_type": "jobject",
+          "arguments": [
+          ]
+        }
+      ]
+    },
+    {
+      "name": "arvr",
+      "type": "ARVR",
+      "version": {
+        "major": 1,
+        "minor": 1
+      },
+      "next": null,
+      "api": [
+        {
+          "name": "godot_arvr_register_interface",
+          "return_type": "void",
+          "arguments": [
+            ["const godot_arvr_interface_gdnative *", "p_interface"]
+          ]
+        },
+        {
+          "name": "godot_arvr_get_worldscale",
+          "return_type": "godot_real",
+          "arguments": []
+        },
+        {
+          "name": "godot_arvr_get_reference_frame",
+          "return_type": "godot_transform",
+          "arguments": []
+        },
+        {
+          "name": "godot_arvr_blit",
+          "return_type": "void",
+          "arguments": [
+            ["int", "p_eye"],
+            ["godot_rid *", "p_render_target"],
+            ["godot_rect2 *", "p_screen_rect"]
+          ]
+        },
+        {
+          "name": "godot_arvr_get_texid",
+          "return_type": "godot_int",
+          "arguments": [
+            ["godot_rid *", "p_render_target"]
+          ]
+        },
+        {
+          "name": "godot_arvr_add_controller",
+          "return_type": "godot_int",
+          "arguments": [
+            ["char *", "p_device_name"],
+            ["godot_int", "p_hand"],
+            ["godot_bool", "p_tracks_orientation"],
+            ["godot_bool", "p_tracks_position"]
+          ]
+        },
+        {
+          "name": "godot_arvr_remove_controller",
+          "return_type": "void",
+          "arguments": [
+            ["godot_int", "p_controller_id"]
+          ]
+        },
+        {
+          "name": "godot_arvr_set_controller_transform",
+          "return_type": "void",
+          "arguments": [
+            ["godot_int", "p_controller_id"],
+            ["godot_transform *", "p_transform"],
+            ["godot_bool", "p_tracks_orientation"],
+            ["godot_bool", "p_tracks_position"]
+          ]
+        },
+        {
+          "name": "godot_arvr_set_controller_button",
+          "return_type": "void",
+          "arguments": [
+            ["godot_int", "p_controller_id"],
+            ["godot_int", "p_button"],
+            ["godot_bool", "p_is_pressed"]
+          ]
+        },
+        {
+          "name": "godot_arvr_set_controller_axis",
+          "return_type": "void",
+          "arguments": [
+            ["godot_int", "p_controller_id"],
+            ["godot_int", "p_exis"],
+            ["godot_real", "p_value"],
+            ["godot_bool", "p_can_be_negative"]
+          ]
+        },
+        {
+          "name": "godot_arvr_get_controller_rumble",
+          "return_type": "godot_real",
+          "arguments": [
+            ["godot_int", "p_controller_id"]
+          ]
+        }
+      ]
+    }
+  ]
+}
diff --git a/godot_headers/gdnative_api_struct.gen.h b/godot_headers/gdnative_api_struct.gen.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/gdnative_api_struct.gen.h
@@ -0,0 +1,885 @@
+/* THIS FILE IS GENERATED DO NOT EDIT */
+#ifndef GODOT_GDNATIVE_API_STRUCT_H
+#define GODOT_GDNATIVE_API_STRUCT_H
+
+#include <gdnative/gdnative.h>
+#include <android/godot_android.h>
+#include <arvr/godot_arvr.h>
+#include <nativescript/godot_nativescript.h>
+#include <pluginscript/godot_pluginscript.h>
+
+#define GDNATIVE_API_INIT(options) do {  \
+	extern const godot_gdnative_core_api_struct *_gdnative_wrapper_api_struct;  \
+	extern const godot_gdnative_ext_nativescript_api_struct *_gdnative_wrapper_nativescript_api_struct;  \
+	extern const godot_gdnative_ext_pluginscript_api_struct *_gdnative_wrapper_pluginscript_api_struct;  \
+	extern const godot_gdnative_ext_android_api_struct *_gdnative_wrapper_android_api_struct;  \
+	extern const godot_gdnative_ext_arvr_api_struct *_gdnative_wrapper_arvr_api_struct;  \
+	_gdnative_wrapper_api_struct = options->api_struct;  \
+	for (unsigned int i = 0; i < _gdnative_wrapper_api_struct->num_extensions; i++) {   \
+		switch (_gdnative_wrapper_api_struct->extensions[i]->type) {  \
+			case GDNATIVE_EXT_NATIVESCRIPT:  \
+				_gdnative_wrapper_nativescript_api_struct = (godot_gdnative_ext_nativescript_api_struct *) _gdnative_wrapper_api_struct->extensions[i];  \
+				break;  \
+			case GDNATIVE_EXT_PLUGINSCRIPT:  \
+				_gdnative_wrapper_pluginscript_api_struct = (godot_gdnative_ext_pluginscript_api_struct *) _gdnative_wrapper_api_struct->extensions[i];  \
+				break;  \
+			case GDNATIVE_EXT_ANDROID:  \
+				_gdnative_wrapper_android_api_struct = (godot_gdnative_ext_android_api_struct *) _gdnative_wrapper_api_struct->extensions[i];  \
+				break;  \
+			case GDNATIVE_EXT_ARVR:  \
+				_gdnative_wrapper_arvr_api_struct = (godot_gdnative_ext_arvr_api_struct *) _gdnative_wrapper_api_struct->extensions[i];  \
+				break;  \
+		}  \
+	}  \
+ } while (0)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum GDNATIVE_API_TYPES {
+	GDNATIVE_CORE,
+	GDNATIVE_EXT_NATIVESCRIPT,
+	GDNATIVE_EXT_PLUGINSCRIPT,
+	GDNATIVE_EXT_ANDROID,
+	GDNATIVE_EXT_ARVR,
+};
+
+typedef struct godot_gdnative_ext_nativescript_1_1_api_struct {
+	unsigned int type;
+	godot_gdnative_api_version version;
+	const godot_gdnative_api_struct *next;
+	void (*godot_nativescript_set_method_argument_information)(void *p_gdnative_handle, const char *p_name, const char *p_function_name, int p_num_args, const godot_method_arg *p_args);
+	void (*godot_nativescript_set_class_documentation)(void *p_gdnative_handle, const char *p_name, godot_string p_documentation);
+	void (*godot_nativescript_set_method_documentation)(void *p_gdnative_handle, const char *p_name, const char *p_function_name, godot_string p_documentation);
+	void (*godot_nativescript_set_property_documentation)(void *p_gdnative_handle, const char *p_name, const char *p_path, godot_string p_documentation);
+	void (*godot_nativescript_set_signal_documentation)(void *p_gdnative_handle, const char *p_name, const char *p_signal_name, godot_string p_documentation);
+	void (*godot_nativescript_set_global_type_tag)(int p_idx, const char *p_name, const void *p_type_tag);
+	const void *(*godot_nativescript_get_global_type_tag)(int p_idx, const char *p_name);
+	void (*godot_nativescript_set_type_tag)(void *p_gdnative_handle, const char *p_name, const void *p_type_tag);
+	const void *(*godot_nativescript_get_type_tag)(const godot_object *p_object);
+	int (*godot_nativescript_register_instance_binding_data_functions)(godot_instance_binding_functions p_binding_functions);
+	void (*godot_nativescript_unregister_instance_binding_data_functions)(int p_idx);
+	void *(*godot_nativescript_get_instance_binding_data)(int p_idx, godot_object *p_object);
+	void (*godot_nativescript_profiling_add_data)(const char *p_signature, uint64_t p_line);
+} godot_gdnative_ext_nativescript_1_1_api_struct;
+
+typedef struct godot_gdnative_ext_nativescript_api_struct {
+	unsigned int type;
+	godot_gdnative_api_version version;
+	const godot_gdnative_api_struct *next;
+	void (*godot_nativescript_register_class)(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func);
+	void (*godot_nativescript_register_tool_class)(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func);
+	void (*godot_nativescript_register_method)(void *p_gdnative_handle, const char *p_name, const char *p_function_name, godot_method_attributes p_attr, godot_instance_method p_method);
+	void (*godot_nativescript_register_property)(void *p_gdnative_handle, const char *p_name, const char *p_path, godot_property_attributes *p_attr, godot_property_set_func p_set_func, godot_property_get_func p_get_func);
+	void (*godot_nativescript_register_signal)(void *p_gdnative_handle, const char *p_name, const godot_signal *p_signal);
+	void *(*godot_nativescript_get_userdata)(godot_object *p_instance);
+} godot_gdnative_ext_nativescript_api_struct;
+
+typedef struct godot_gdnative_ext_pluginscript_api_struct {
+	unsigned int type;
+	godot_gdnative_api_version version;
+	const godot_gdnative_api_struct *next;
+	void (*godot_pluginscript_register_language)(const godot_pluginscript_language_desc *language_desc);
+} godot_gdnative_ext_pluginscript_api_struct;
+
+typedef struct godot_gdnative_ext_android_api_struct {
+	unsigned int type;
+	godot_gdnative_api_version version;
+	const godot_gdnative_api_struct *next;
+	JNIEnv*(*godot_android_get_env)();
+	jobject (*godot_android_get_activity)();
+} godot_gdnative_ext_android_api_struct;
+
+typedef struct godot_gdnative_ext_arvr_api_struct {
+	unsigned int type;
+	godot_gdnative_api_version version;
+	const godot_gdnative_api_struct *next;
+	void (*godot_arvr_register_interface)(const godot_arvr_interface_gdnative *p_interface);
+	godot_real (*godot_arvr_get_worldscale)();
+	godot_transform (*godot_arvr_get_reference_frame)();
+	void (*godot_arvr_blit)(int p_eye, godot_rid *p_render_target, godot_rect2 *p_screen_rect);
+	godot_int (*godot_arvr_get_texid)(godot_rid *p_render_target);
+	godot_int (*godot_arvr_add_controller)(char *p_device_name, godot_int p_hand, godot_bool p_tracks_orientation, godot_bool p_tracks_position);
+	void (*godot_arvr_remove_controller)(godot_int p_controller_id);
+	void (*godot_arvr_set_controller_transform)(godot_int p_controller_id, godot_transform *p_transform, godot_bool p_tracks_orientation, godot_bool p_tracks_position);
+	void (*godot_arvr_set_controller_button)(godot_int p_controller_id, godot_int p_button, godot_bool p_is_pressed);
+	void (*godot_arvr_set_controller_axis)(godot_int p_controller_id, godot_int p_exis, godot_real p_value, godot_bool p_can_be_negative);
+	godot_real (*godot_arvr_get_controller_rumble)(godot_int p_controller_id);
+} godot_gdnative_ext_arvr_api_struct;
+
+typedef struct godot_gdnative_core_1_1_api_struct {
+	unsigned int type;
+	godot_gdnative_api_version version;
+	const godot_gdnative_api_struct *next;
+	godot_quat (*godot_basis_get_quat)(const godot_basis *p_self);
+	void (*godot_basis_set_quat)(godot_basis *p_self, const godot_quat *p_quat);
+	void (*godot_basis_set_axis_angle_scale)(godot_basis *p_self, const godot_vector3 *p_axis, godot_real p_phi, const godot_vector3 *p_scale);
+	void (*godot_basis_set_euler_scale)(godot_basis *p_self, const godot_vector3 *p_euler, const godot_vector3 *p_scale);
+	void (*godot_basis_set_quat_scale)(godot_basis *p_self, const godot_quat *p_quat, const godot_vector3 *p_scale);
+	bool (*godot_dictionary_erase_with_return)(godot_dictionary *p_self, const godot_variant *p_key);
+	bool (*godot_is_instance_valid)(const godot_object *p_object);
+	void (*godot_quat_new_with_basis)(godot_quat *r_dest, const godot_basis *p_basis);
+	void (*godot_quat_new_with_euler)(godot_quat *r_dest, const godot_vector3 *p_euler);
+	void (*godot_transform_new_with_quat)(godot_transform *r_dest, const godot_quat *p_quat);
+	godot_string (*godot_variant_get_operator_name)(godot_variant_operator p_op);
+	void (*godot_variant_evaluate)(godot_variant_operator p_op, const godot_variant *p_a, const godot_variant *p_b, godot_variant *r_ret, godot_bool *r_valid);
+} godot_gdnative_core_1_1_api_struct;
+
+typedef struct godot_gdnative_core_api_struct {
+	unsigned int type;
+	godot_gdnative_api_version version;
+	const godot_gdnative_api_struct *next;
+	unsigned int num_extensions;
+	const godot_gdnative_api_struct **extensions;
+	void (*godot_color_new_rgba)(godot_color *r_dest, const godot_real p_r, const godot_real p_g, const godot_real p_b, const godot_real p_a);
+	void (*godot_color_new_rgb)(godot_color *r_dest, const godot_real p_r, const godot_real p_g, const godot_real p_b);
+	godot_real (*godot_color_get_r)(const godot_color *p_self);
+	void (*godot_color_set_r)(godot_color *p_self, const godot_real r);
+	godot_real (*godot_color_get_g)(const godot_color *p_self);
+	void (*godot_color_set_g)(godot_color *p_self, const godot_real g);
+	godot_real (*godot_color_get_b)(const godot_color *p_self);
+	void (*godot_color_set_b)(godot_color *p_self, const godot_real b);
+	godot_real (*godot_color_get_a)(const godot_color *p_self);
+	void (*godot_color_set_a)(godot_color *p_self, const godot_real a);
+	godot_real (*godot_color_get_h)(const godot_color *p_self);
+	godot_real (*godot_color_get_s)(const godot_color *p_self);
+	godot_real (*godot_color_get_v)(const godot_color *p_self);
+	godot_string (*godot_color_as_string)(const godot_color *p_self);
+	godot_int (*godot_color_to_rgba32)(const godot_color *p_self);
+	godot_int (*godot_color_to_argb32)(const godot_color *p_self);
+	godot_real (*godot_color_gray)(const godot_color *p_self);
+	godot_color (*godot_color_inverted)(const godot_color *p_self);
+	godot_color (*godot_color_contrasted)(const godot_color *p_self);
+	godot_color (*godot_color_linear_interpolate)(const godot_color *p_self, const godot_color *p_b, const godot_real p_t);
+	godot_color (*godot_color_blend)(const godot_color *p_self, const godot_color *p_over);
+	godot_string (*godot_color_to_html)(const godot_color *p_self, const godot_bool p_with_alpha);
+	godot_bool (*godot_color_operator_equal)(const godot_color *p_self, const godot_color *p_b);
+	godot_bool (*godot_color_operator_less)(const godot_color *p_self, const godot_color *p_b);
+	void (*godot_vector2_new)(godot_vector2 *r_dest, const godot_real p_x, const godot_real p_y);
+	godot_string (*godot_vector2_as_string)(const godot_vector2 *p_self);
+	godot_vector2 (*godot_vector2_normalized)(const godot_vector2 *p_self);
+	godot_real (*godot_vector2_length)(const godot_vector2 *p_self);
+	godot_real (*godot_vector2_angle)(const godot_vector2 *p_self);
+	godot_real (*godot_vector2_length_squared)(const godot_vector2 *p_self);
+	godot_bool (*godot_vector2_is_normalized)(const godot_vector2 *p_self);
+	godot_real (*godot_vector2_distance_to)(const godot_vector2 *p_self, const godot_vector2 *p_to);
+	godot_real (*godot_vector2_distance_squared_to)(const godot_vector2 *p_self, const godot_vector2 *p_to);
+	godot_real (*godot_vector2_angle_to)(const godot_vector2 *p_self, const godot_vector2 *p_to);
+	godot_real (*godot_vector2_angle_to_point)(const godot_vector2 *p_self, const godot_vector2 *p_to);
+	godot_vector2 (*godot_vector2_linear_interpolate)(const godot_vector2 *p_self, const godot_vector2 *p_b, const godot_real p_t);
+	godot_vector2 (*godot_vector2_cubic_interpolate)(const godot_vector2 *p_self, const godot_vector2 *p_b, const godot_vector2 *p_pre_a, const godot_vector2 *p_post_b, const godot_real p_t);
+	godot_vector2 (*godot_vector2_rotated)(const godot_vector2 *p_self, const godot_real p_phi);
+	godot_vector2 (*godot_vector2_tangent)(const godot_vector2 *p_self);
+	godot_vector2 (*godot_vector2_floor)(const godot_vector2 *p_self);
+	godot_vector2 (*godot_vector2_snapped)(const godot_vector2 *p_self, const godot_vector2 *p_by);
+	godot_real (*godot_vector2_aspect)(const godot_vector2 *p_self);
+	godot_real (*godot_vector2_dot)(const godot_vector2 *p_self, const godot_vector2 *p_with);
+	godot_vector2 (*godot_vector2_slide)(const godot_vector2 *p_self, const godot_vector2 *p_n);
+	godot_vector2 (*godot_vector2_bounce)(const godot_vector2 *p_self, const godot_vector2 *p_n);
+	godot_vector2 (*godot_vector2_reflect)(const godot_vector2 *p_self, const godot_vector2 *p_n);
+	godot_vector2 (*godot_vector2_abs)(const godot_vector2 *p_self);
+	godot_vector2 (*godot_vector2_clamped)(const godot_vector2 *p_self, const godot_real p_length);
+	godot_vector2 (*godot_vector2_operator_add)(const godot_vector2 *p_self, const godot_vector2 *p_b);
+	godot_vector2 (*godot_vector2_operator_subtract)(const godot_vector2 *p_self, const godot_vector2 *p_b);
+	godot_vector2 (*godot_vector2_operator_multiply_vector)(const godot_vector2 *p_self, const godot_vector2 *p_b);
+	godot_vector2 (*godot_vector2_operator_multiply_scalar)(const godot_vector2 *p_self, const godot_real p_b);
+	godot_vector2 (*godot_vector2_operator_divide_vector)(const godot_vector2 *p_self, const godot_vector2 *p_b);
+	godot_vector2 (*godot_vector2_operator_divide_scalar)(const godot_vector2 *p_self, const godot_real p_b);
+	godot_bool (*godot_vector2_operator_equal)(const godot_vector2 *p_self, const godot_vector2 *p_b);
+	godot_bool (*godot_vector2_operator_less)(const godot_vector2 *p_self, const godot_vector2 *p_b);
+	godot_vector2 (*godot_vector2_operator_neg)(const godot_vector2 *p_self);
+	void (*godot_vector2_set_x)(godot_vector2 *p_self, const godot_real p_x);
+	void (*godot_vector2_set_y)(godot_vector2 *p_self, const godot_real p_y);
+	godot_real (*godot_vector2_get_x)(const godot_vector2 *p_self);
+	godot_real (*godot_vector2_get_y)(const godot_vector2 *p_self);
+	void (*godot_quat_new)(godot_quat *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_z, const godot_real p_w);
+	void (*godot_quat_new_with_axis_angle)(godot_quat *r_dest, const godot_vector3 *p_axis, const godot_real p_angle);
+	godot_real (*godot_quat_get_x)(const godot_quat *p_self);
+	void (*godot_quat_set_x)(godot_quat *p_self, const godot_real val);
+	godot_real (*godot_quat_get_y)(const godot_quat *p_self);
+	void (*godot_quat_set_y)(godot_quat *p_self, const godot_real val);
+	godot_real (*godot_quat_get_z)(const godot_quat *p_self);
+	void (*godot_quat_set_z)(godot_quat *p_self, const godot_real val);
+	godot_real (*godot_quat_get_w)(const godot_quat *p_self);
+	void (*godot_quat_set_w)(godot_quat *p_self, const godot_real val);
+	godot_string (*godot_quat_as_string)(const godot_quat *p_self);
+	godot_real (*godot_quat_length)(const godot_quat *p_self);
+	godot_real (*godot_quat_length_squared)(const godot_quat *p_self);
+	godot_quat (*godot_quat_normalized)(const godot_quat *p_self);
+	godot_bool (*godot_quat_is_normalized)(const godot_quat *p_self);
+	godot_quat (*godot_quat_inverse)(const godot_quat *p_self);
+	godot_real (*godot_quat_dot)(const godot_quat *p_self, const godot_quat *p_b);
+	godot_vector3 (*godot_quat_xform)(const godot_quat *p_self, const godot_vector3 *p_v);
+	godot_quat (*godot_quat_slerp)(const godot_quat *p_self, const godot_quat *p_b, const godot_real p_t);
+	godot_quat (*godot_quat_slerpni)(const godot_quat *p_self, const godot_quat *p_b, const godot_real p_t);
+	godot_quat (*godot_quat_cubic_slerp)(const godot_quat *p_self, const godot_quat *p_b, const godot_quat *p_pre_a, const godot_quat *p_post_b, const godot_real p_t);
+	godot_quat (*godot_quat_operator_multiply)(const godot_quat *p_self, const godot_real p_b);
+	godot_quat (*godot_quat_operator_add)(const godot_quat *p_self, const godot_quat *p_b);
+	godot_quat (*godot_quat_operator_subtract)(const godot_quat *p_self, const godot_quat *p_b);
+	godot_quat (*godot_quat_operator_divide)(const godot_quat *p_self, const godot_real p_b);
+	godot_bool (*godot_quat_operator_equal)(const godot_quat *p_self, const godot_quat *p_b);
+	godot_quat (*godot_quat_operator_neg)(const godot_quat *p_self);
+	void (*godot_basis_new_with_rows)(godot_basis *r_dest, const godot_vector3 *p_x_axis, const godot_vector3 *p_y_axis, const godot_vector3 *p_z_axis);
+	void (*godot_basis_new_with_axis_and_angle)(godot_basis *r_dest, const godot_vector3 *p_axis, const godot_real p_phi);
+	void (*godot_basis_new_with_euler)(godot_basis *r_dest, const godot_vector3 *p_euler);
+	godot_string (*godot_basis_as_string)(const godot_basis *p_self);
+	godot_basis (*godot_basis_inverse)(const godot_basis *p_self);
+	godot_basis (*godot_basis_transposed)(const godot_basis *p_self);
+	godot_basis (*godot_basis_orthonormalized)(const godot_basis *p_self);
+	godot_real (*godot_basis_determinant)(const godot_basis *p_self);
+	godot_basis (*godot_basis_rotated)(const godot_basis *p_self, const godot_vector3 *p_axis, const godot_real p_phi);
+	godot_basis (*godot_basis_scaled)(const godot_basis *p_self, const godot_vector3 *p_scale);
+	godot_vector3 (*godot_basis_get_scale)(const godot_basis *p_self);
+	godot_vector3 (*godot_basis_get_euler)(const godot_basis *p_self);
+	godot_real (*godot_basis_tdotx)(const godot_basis *p_self, const godot_vector3 *p_with);
+	godot_real (*godot_basis_tdoty)(const godot_basis *p_self, const godot_vector3 *p_with);
+	godot_real (*godot_basis_tdotz)(const godot_basis *p_self, const godot_vector3 *p_with);
+	godot_vector3 (*godot_basis_xform)(const godot_basis *p_self, const godot_vector3 *p_v);
+	godot_vector3 (*godot_basis_xform_inv)(const godot_basis *p_self, const godot_vector3 *p_v);
+	godot_int (*godot_basis_get_orthogonal_index)(const godot_basis *p_self);
+	void (*godot_basis_new)(godot_basis *r_dest);
+	void (*godot_basis_new_with_euler_quat)(godot_basis *r_dest, const godot_quat *p_euler);
+	void (*godot_basis_get_elements)(const godot_basis *p_self, godot_vector3 *p_elements);
+	godot_vector3 (*godot_basis_get_axis)(const godot_basis *p_self, const godot_int p_axis);
+	void (*godot_basis_set_axis)(godot_basis *p_self, const godot_int p_axis, const godot_vector3 *p_value);
+	godot_vector3 (*godot_basis_get_row)(const godot_basis *p_self, const godot_int p_row);
+	void (*godot_basis_set_row)(godot_basis *p_self, const godot_int p_row, const godot_vector3 *p_value);
+	godot_bool (*godot_basis_operator_equal)(const godot_basis *p_self, const godot_basis *p_b);
+	godot_basis (*godot_basis_operator_add)(const godot_basis *p_self, const godot_basis *p_b);
+	godot_basis (*godot_basis_operator_subtract)(const godot_basis *p_self, const godot_basis *p_b);
+	godot_basis (*godot_basis_operator_multiply_vector)(const godot_basis *p_self, const godot_basis *p_b);
+	godot_basis (*godot_basis_operator_multiply_scalar)(const godot_basis *p_self, const godot_real p_b);
+	void (*godot_vector3_new)(godot_vector3 *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_z);
+	godot_string (*godot_vector3_as_string)(const godot_vector3 *p_self);
+	godot_int (*godot_vector3_min_axis)(const godot_vector3 *p_self);
+	godot_int (*godot_vector3_max_axis)(const godot_vector3 *p_self);
+	godot_real (*godot_vector3_length)(const godot_vector3 *p_self);
+	godot_real (*godot_vector3_length_squared)(const godot_vector3 *p_self);
+	godot_bool (*godot_vector3_is_normalized)(const godot_vector3 *p_self);
+	godot_vector3 (*godot_vector3_normalized)(const godot_vector3 *p_self);
+	godot_vector3 (*godot_vector3_inverse)(const godot_vector3 *p_self);
+	godot_vector3 (*godot_vector3_snapped)(const godot_vector3 *p_self, const godot_vector3 *p_by);
+	godot_vector3 (*godot_vector3_rotated)(const godot_vector3 *p_self, const godot_vector3 *p_axis, const godot_real p_phi);
+	godot_vector3 (*godot_vector3_linear_interpolate)(const godot_vector3 *p_self, const godot_vector3 *p_b, const godot_real p_t);
+	godot_vector3 (*godot_vector3_cubic_interpolate)(const godot_vector3 *p_self, const godot_vector3 *p_b, const godot_vector3 *p_pre_a, const godot_vector3 *p_post_b, const godot_real p_t);
+	godot_real (*godot_vector3_dot)(const godot_vector3 *p_self, const godot_vector3 *p_b);
+	godot_vector3 (*godot_vector3_cross)(const godot_vector3 *p_self, const godot_vector3 *p_b);
+	godot_basis (*godot_vector3_outer)(const godot_vector3 *p_self, const godot_vector3 *p_b);
+	godot_basis (*godot_vector3_to_diagonal_matrix)(const godot_vector3 *p_self);
+	godot_vector3 (*godot_vector3_abs)(const godot_vector3 *p_self);
+	godot_vector3 (*godot_vector3_floor)(const godot_vector3 *p_self);
+	godot_vector3 (*godot_vector3_ceil)(const godot_vector3 *p_self);
+	godot_real (*godot_vector3_distance_to)(const godot_vector3 *p_self, const godot_vector3 *p_b);
+	godot_real (*godot_vector3_distance_squared_to)(const godot_vector3 *p_self, const godot_vector3 *p_b);
+	godot_real (*godot_vector3_angle_to)(const godot_vector3 *p_self, const godot_vector3 *p_to);
+	godot_vector3 (*godot_vector3_slide)(const godot_vector3 *p_self, const godot_vector3 *p_n);
+	godot_vector3 (*godot_vector3_bounce)(const godot_vector3 *p_self, const godot_vector3 *p_n);
+	godot_vector3 (*godot_vector3_reflect)(const godot_vector3 *p_self, const godot_vector3 *p_n);
+	godot_vector3 (*godot_vector3_operator_add)(const godot_vector3 *p_self, const godot_vector3 *p_b);
+	godot_vector3 (*godot_vector3_operator_subtract)(const godot_vector3 *p_self, const godot_vector3 *p_b);
+	godot_vector3 (*godot_vector3_operator_multiply_vector)(const godot_vector3 *p_self, const godot_vector3 *p_b);
+	godot_vector3 (*godot_vector3_operator_multiply_scalar)(const godot_vector3 *p_self, const godot_real p_b);
+	godot_vector3 (*godot_vector3_operator_divide_vector)(const godot_vector3 *p_self, const godot_vector3 *p_b);
+	godot_vector3 (*godot_vector3_operator_divide_scalar)(const godot_vector3 *p_self, const godot_real p_b);
+	godot_bool (*godot_vector3_operator_equal)(const godot_vector3 *p_self, const godot_vector3 *p_b);
+	godot_bool (*godot_vector3_operator_less)(const godot_vector3 *p_self, const godot_vector3 *p_b);
+	godot_vector3 (*godot_vector3_operator_neg)(const godot_vector3 *p_self);
+	void (*godot_vector3_set_axis)(godot_vector3 *p_self, const godot_vector3_axis p_axis, const godot_real p_val);
+	godot_real (*godot_vector3_get_axis)(const godot_vector3 *p_self, const godot_vector3_axis p_axis);
+	void (*godot_pool_byte_array_new)(godot_pool_byte_array *r_dest);
+	void (*godot_pool_byte_array_new_copy)(godot_pool_byte_array *r_dest, const godot_pool_byte_array *p_src);
+	void (*godot_pool_byte_array_new_with_array)(godot_pool_byte_array *r_dest, const godot_array *p_a);
+	void (*godot_pool_byte_array_append)(godot_pool_byte_array *p_self, const uint8_t p_data);
+	void (*godot_pool_byte_array_append_array)(godot_pool_byte_array *p_self, const godot_pool_byte_array *p_array);
+	godot_error (*godot_pool_byte_array_insert)(godot_pool_byte_array *p_self, const godot_int p_idx, const uint8_t p_data);
+	void (*godot_pool_byte_array_invert)(godot_pool_byte_array *p_self);
+	void (*godot_pool_byte_array_push_back)(godot_pool_byte_array *p_self, const uint8_t p_data);
+	void (*godot_pool_byte_array_remove)(godot_pool_byte_array *p_self, const godot_int p_idx);
+	void (*godot_pool_byte_array_resize)(godot_pool_byte_array *p_self, const godot_int p_size);
+	godot_pool_byte_array_read_access *(*godot_pool_byte_array_read)(const godot_pool_byte_array *p_self);
+	godot_pool_byte_array_write_access *(*godot_pool_byte_array_write)(godot_pool_byte_array *p_self);
+	void (*godot_pool_byte_array_set)(godot_pool_byte_array *p_self, const godot_int p_idx, const uint8_t p_data);
+	uint8_t (*godot_pool_byte_array_get)(const godot_pool_byte_array *p_self, const godot_int p_idx);
+	godot_int (*godot_pool_byte_array_size)(const godot_pool_byte_array *p_self);
+	void (*godot_pool_byte_array_destroy)(godot_pool_byte_array *p_self);
+	void (*godot_pool_int_array_new)(godot_pool_int_array *r_dest);
+	void (*godot_pool_int_array_new_copy)(godot_pool_int_array *r_dest, const godot_pool_int_array *p_src);
+	void (*godot_pool_int_array_new_with_array)(godot_pool_int_array *r_dest, const godot_array *p_a);
+	void (*godot_pool_int_array_append)(godot_pool_int_array *p_self, const godot_int p_data);
+	void (*godot_pool_int_array_append_array)(godot_pool_int_array *p_self, const godot_pool_int_array *p_array);
+	godot_error (*godot_pool_int_array_insert)(godot_pool_int_array *p_self, const godot_int p_idx, const godot_int p_data);
+	void (*godot_pool_int_array_invert)(godot_pool_int_array *p_self);
+	void (*godot_pool_int_array_push_back)(godot_pool_int_array *p_self, const godot_int p_data);
+	void (*godot_pool_int_array_remove)(godot_pool_int_array *p_self, const godot_int p_idx);
+	void (*godot_pool_int_array_resize)(godot_pool_int_array *p_self, const godot_int p_size);
+	godot_pool_int_array_read_access *(*godot_pool_int_array_read)(const godot_pool_int_array *p_self);
+	godot_pool_int_array_write_access *(*godot_pool_int_array_write)(godot_pool_int_array *p_self);
+	void (*godot_pool_int_array_set)(godot_pool_int_array *p_self, const godot_int p_idx, const godot_int p_data);
+	godot_int (*godot_pool_int_array_get)(const godot_pool_int_array *p_self, const godot_int p_idx);
+	godot_int (*godot_pool_int_array_size)(const godot_pool_int_array *p_self);
+	void (*godot_pool_int_array_destroy)(godot_pool_int_array *p_self);
+	void (*godot_pool_real_array_new)(godot_pool_real_array *r_dest);
+	void (*godot_pool_real_array_new_copy)(godot_pool_real_array *r_dest, const godot_pool_real_array *p_src);
+	void (*godot_pool_real_array_new_with_array)(godot_pool_real_array *r_dest, const godot_array *p_a);
+	void (*godot_pool_real_array_append)(godot_pool_real_array *p_self, const godot_real p_data);
+	void (*godot_pool_real_array_append_array)(godot_pool_real_array *p_self, const godot_pool_real_array *p_array);
+	godot_error (*godot_pool_real_array_insert)(godot_pool_real_array *p_self, const godot_int p_idx, const godot_real p_data);
+	void (*godot_pool_real_array_invert)(godot_pool_real_array *p_self);
+	void (*godot_pool_real_array_push_back)(godot_pool_real_array *p_self, const godot_real p_data);
+	void (*godot_pool_real_array_remove)(godot_pool_real_array *p_self, const godot_int p_idx);
+	void (*godot_pool_real_array_resize)(godot_pool_real_array *p_self, const godot_int p_size);
+	godot_pool_real_array_read_access *(*godot_pool_real_array_read)(const godot_pool_real_array *p_self);
+	godot_pool_real_array_write_access *(*godot_pool_real_array_write)(godot_pool_real_array *p_self);
+	void (*godot_pool_real_array_set)(godot_pool_real_array *p_self, const godot_int p_idx, const godot_real p_data);
+	godot_real (*godot_pool_real_array_get)(const godot_pool_real_array *p_self, const godot_int p_idx);
+	godot_int (*godot_pool_real_array_size)(const godot_pool_real_array *p_self);
+	void (*godot_pool_real_array_destroy)(godot_pool_real_array *p_self);
+	void (*godot_pool_string_array_new)(godot_pool_string_array *r_dest);
+	void (*godot_pool_string_array_new_copy)(godot_pool_string_array *r_dest, const godot_pool_string_array *p_src);
+	void (*godot_pool_string_array_new_with_array)(godot_pool_string_array *r_dest, const godot_array *p_a);
+	void (*godot_pool_string_array_append)(godot_pool_string_array *p_self, const godot_string *p_data);
+	void (*godot_pool_string_array_append_array)(godot_pool_string_array *p_self, const godot_pool_string_array *p_array);
+	godot_error (*godot_pool_string_array_insert)(godot_pool_string_array *p_self, const godot_int p_idx, const godot_string *p_data);
+	void (*godot_pool_string_array_invert)(godot_pool_string_array *p_self);
+	void (*godot_pool_string_array_push_back)(godot_pool_string_array *p_self, const godot_string *p_data);
+	void (*godot_pool_string_array_remove)(godot_pool_string_array *p_self, const godot_int p_idx);
+	void (*godot_pool_string_array_resize)(godot_pool_string_array *p_self, const godot_int p_size);
+	godot_pool_string_array_read_access *(*godot_pool_string_array_read)(const godot_pool_string_array *p_self);
+	godot_pool_string_array_write_access *(*godot_pool_string_array_write)(godot_pool_string_array *p_self);
+	void (*godot_pool_string_array_set)(godot_pool_string_array *p_self, const godot_int p_idx, const godot_string *p_data);
+	godot_string (*godot_pool_string_array_get)(const godot_pool_string_array *p_self, const godot_int p_idx);
+	godot_int (*godot_pool_string_array_size)(const godot_pool_string_array *p_self);
+	void (*godot_pool_string_array_destroy)(godot_pool_string_array *p_self);
+	void (*godot_pool_vector2_array_new)(godot_pool_vector2_array *r_dest);
+	void (*godot_pool_vector2_array_new_copy)(godot_pool_vector2_array *r_dest, const godot_pool_vector2_array *p_src);
+	void (*godot_pool_vector2_array_new_with_array)(godot_pool_vector2_array *r_dest, const godot_array *p_a);
+	void (*godot_pool_vector2_array_append)(godot_pool_vector2_array *p_self, const godot_vector2 *p_data);
+	void (*godot_pool_vector2_array_append_array)(godot_pool_vector2_array *p_self, const godot_pool_vector2_array *p_array);
+	godot_error (*godot_pool_vector2_array_insert)(godot_pool_vector2_array *p_self, const godot_int p_idx, const godot_vector2 *p_data);
+	void (*godot_pool_vector2_array_invert)(godot_pool_vector2_array *p_self);
+	void (*godot_pool_vector2_array_push_back)(godot_pool_vector2_array *p_self, const godot_vector2 *p_data);
+	void (*godot_pool_vector2_array_remove)(godot_pool_vector2_array *p_self, const godot_int p_idx);
+	void (*godot_pool_vector2_array_resize)(godot_pool_vector2_array *p_self, const godot_int p_size);
+	godot_pool_vector2_array_read_access *(*godot_pool_vector2_array_read)(const godot_pool_vector2_array *p_self);
+	godot_pool_vector2_array_write_access *(*godot_pool_vector2_array_write)(godot_pool_vector2_array *p_self);
+	void (*godot_pool_vector2_array_set)(godot_pool_vector2_array *p_self, const godot_int p_idx, const godot_vector2 *p_data);
+	godot_vector2 (*godot_pool_vector2_array_get)(const godot_pool_vector2_array *p_self, const godot_int p_idx);
+	godot_int (*godot_pool_vector2_array_size)(const godot_pool_vector2_array *p_self);
+	void (*godot_pool_vector2_array_destroy)(godot_pool_vector2_array *p_self);
+	void (*godot_pool_vector3_array_new)(godot_pool_vector3_array *r_dest);
+	void (*godot_pool_vector3_array_new_copy)(godot_pool_vector3_array *r_dest, const godot_pool_vector3_array *p_src);
+	void (*godot_pool_vector3_array_new_with_array)(godot_pool_vector3_array *r_dest, const godot_array *p_a);
+	void (*godot_pool_vector3_array_append)(godot_pool_vector3_array *p_self, const godot_vector3 *p_data);
+	void (*godot_pool_vector3_array_append_array)(godot_pool_vector3_array *p_self, const godot_pool_vector3_array *p_array);
+	godot_error (*godot_pool_vector3_array_insert)(godot_pool_vector3_array *p_self, const godot_int p_idx, const godot_vector3 *p_data);
+	void (*godot_pool_vector3_array_invert)(godot_pool_vector3_array *p_self);
+	void (*godot_pool_vector3_array_push_back)(godot_pool_vector3_array *p_self, const godot_vector3 *p_data);
+	void (*godot_pool_vector3_array_remove)(godot_pool_vector3_array *p_self, const godot_int p_idx);
+	void (*godot_pool_vector3_array_resize)(godot_pool_vector3_array *p_self, const godot_int p_size);
+	godot_pool_vector3_array_read_access *(*godot_pool_vector3_array_read)(const godot_pool_vector3_array *p_self);
+	godot_pool_vector3_array_write_access *(*godot_pool_vector3_array_write)(godot_pool_vector3_array *p_self);
+	void (*godot_pool_vector3_array_set)(godot_pool_vector3_array *p_self, const godot_int p_idx, const godot_vector3 *p_data);
+	godot_vector3 (*godot_pool_vector3_array_get)(const godot_pool_vector3_array *p_self, const godot_int p_idx);
+	godot_int (*godot_pool_vector3_array_size)(const godot_pool_vector3_array *p_self);
+	void (*godot_pool_vector3_array_destroy)(godot_pool_vector3_array *p_self);
+	void (*godot_pool_color_array_new)(godot_pool_color_array *r_dest);
+	void (*godot_pool_color_array_new_copy)(godot_pool_color_array *r_dest, const godot_pool_color_array *p_src);
+	void (*godot_pool_color_array_new_with_array)(godot_pool_color_array *r_dest, const godot_array *p_a);
+	void (*godot_pool_color_array_append)(godot_pool_color_array *p_self, const godot_color *p_data);
+	void (*godot_pool_color_array_append_array)(godot_pool_color_array *p_self, const godot_pool_color_array *p_array);
+	godot_error (*godot_pool_color_array_insert)(godot_pool_color_array *p_self, const godot_int p_idx, const godot_color *p_data);
+	void (*godot_pool_color_array_invert)(godot_pool_color_array *p_self);
+	void (*godot_pool_color_array_push_back)(godot_pool_color_array *p_self, const godot_color *p_data);
+	void (*godot_pool_color_array_remove)(godot_pool_color_array *p_self, const godot_int p_idx);
+	void (*godot_pool_color_array_resize)(godot_pool_color_array *p_self, const godot_int p_size);
+	godot_pool_color_array_read_access *(*godot_pool_color_array_read)(const godot_pool_color_array *p_self);
+	godot_pool_color_array_write_access *(*godot_pool_color_array_write)(godot_pool_color_array *p_self);
+	void (*godot_pool_color_array_set)(godot_pool_color_array *p_self, const godot_int p_idx, const godot_color *p_data);
+	godot_color (*godot_pool_color_array_get)(const godot_pool_color_array *p_self, const godot_int p_idx);
+	godot_int (*godot_pool_color_array_size)(const godot_pool_color_array *p_self);
+	void (*godot_pool_color_array_destroy)(godot_pool_color_array *p_self);
+	godot_pool_byte_array_read_access *(*godot_pool_byte_array_read_access_copy)(const godot_pool_byte_array_read_access *p_read);
+	const uint8_t *(*godot_pool_byte_array_read_access_ptr)(const godot_pool_byte_array_read_access *p_read);
+	void (*godot_pool_byte_array_read_access_operator_assign)(godot_pool_byte_array_read_access *p_read, godot_pool_byte_array_read_access *p_other);
+	void (*godot_pool_byte_array_read_access_destroy)(godot_pool_byte_array_read_access *p_read);
+	godot_pool_int_array_read_access *(*godot_pool_int_array_read_access_copy)(const godot_pool_int_array_read_access *p_read);
+	const godot_int *(*godot_pool_int_array_read_access_ptr)(const godot_pool_int_array_read_access *p_read);
+	void (*godot_pool_int_array_read_access_operator_assign)(godot_pool_int_array_read_access *p_read, godot_pool_int_array_read_access *p_other);
+	void (*godot_pool_int_array_read_access_destroy)(godot_pool_int_array_read_access *p_read);
+	godot_pool_real_array_read_access *(*godot_pool_real_array_read_access_copy)(const godot_pool_real_array_read_access *p_read);
+	const godot_real *(*godot_pool_real_array_read_access_ptr)(const godot_pool_real_array_read_access *p_read);
+	void (*godot_pool_real_array_read_access_operator_assign)(godot_pool_real_array_read_access *p_read, godot_pool_real_array_read_access *p_other);
+	void (*godot_pool_real_array_read_access_destroy)(godot_pool_real_array_read_access *p_read);
+	godot_pool_string_array_read_access *(*godot_pool_string_array_read_access_copy)(const godot_pool_string_array_read_access *p_read);
+	const godot_string *(*godot_pool_string_array_read_access_ptr)(const godot_pool_string_array_read_access *p_read);
+	void (*godot_pool_string_array_read_access_operator_assign)(godot_pool_string_array_read_access *p_read, godot_pool_string_array_read_access *p_other);
+	void (*godot_pool_string_array_read_access_destroy)(godot_pool_string_array_read_access *p_read);
+	godot_pool_vector2_array_read_access *(*godot_pool_vector2_array_read_access_copy)(const godot_pool_vector2_array_read_access *p_read);
+	const godot_vector2 *(*godot_pool_vector2_array_read_access_ptr)(const godot_pool_vector2_array_read_access *p_read);
+	void (*godot_pool_vector2_array_read_access_operator_assign)(godot_pool_vector2_array_read_access *p_read, godot_pool_vector2_array_read_access *p_other);
+	void (*godot_pool_vector2_array_read_access_destroy)(godot_pool_vector2_array_read_access *p_read);
+	godot_pool_vector3_array_read_access *(*godot_pool_vector3_array_read_access_copy)(const godot_pool_vector3_array_read_access *p_read);
+	const godot_vector3 *(*godot_pool_vector3_array_read_access_ptr)(const godot_pool_vector3_array_read_access *p_read);
+	void (*godot_pool_vector3_array_read_access_operator_assign)(godot_pool_vector3_array_read_access *p_read, godot_pool_vector3_array_read_access *p_other);
+	void (*godot_pool_vector3_array_read_access_destroy)(godot_pool_vector3_array_read_access *p_read);
+	godot_pool_color_array_read_access *(*godot_pool_color_array_read_access_copy)(const godot_pool_color_array_read_access *p_read);
+	const godot_color *(*godot_pool_color_array_read_access_ptr)(const godot_pool_color_array_read_access *p_read);
+	void (*godot_pool_color_array_read_access_operator_assign)(godot_pool_color_array_read_access *p_read, godot_pool_color_array_read_access *p_other);
+	void (*godot_pool_color_array_read_access_destroy)(godot_pool_color_array_read_access *p_read);
+	godot_pool_byte_array_write_access *(*godot_pool_byte_array_write_access_copy)(const godot_pool_byte_array_write_access *p_write);
+	uint8_t *(*godot_pool_byte_array_write_access_ptr)(const godot_pool_byte_array_write_access *p_write);
+	void (*godot_pool_byte_array_write_access_operator_assign)(godot_pool_byte_array_write_access *p_write, godot_pool_byte_array_write_access *p_other);
+	void (*godot_pool_byte_array_write_access_destroy)(godot_pool_byte_array_write_access *p_write);
+	godot_pool_int_array_write_access *(*godot_pool_int_array_write_access_copy)(const godot_pool_int_array_write_access *p_write);
+	godot_int *(*godot_pool_int_array_write_access_ptr)(const godot_pool_int_array_write_access *p_write);
+	void (*godot_pool_int_array_write_access_operator_assign)(godot_pool_int_array_write_access *p_write, godot_pool_int_array_write_access *p_other);
+	void (*godot_pool_int_array_write_access_destroy)(godot_pool_int_array_write_access *p_write);
+	godot_pool_real_array_write_access *(*godot_pool_real_array_write_access_copy)(const godot_pool_real_array_write_access *p_write);
+	godot_real *(*godot_pool_real_array_write_access_ptr)(const godot_pool_real_array_write_access *p_write);
+	void (*godot_pool_real_array_write_access_operator_assign)(godot_pool_real_array_write_access *p_write, godot_pool_real_array_write_access *p_other);
+	void (*godot_pool_real_array_write_access_destroy)(godot_pool_real_array_write_access *p_write);
+	godot_pool_string_array_write_access *(*godot_pool_string_array_write_access_copy)(const godot_pool_string_array_write_access *p_write);
+	godot_string *(*godot_pool_string_array_write_access_ptr)(const godot_pool_string_array_write_access *p_write);
+	void (*godot_pool_string_array_write_access_operator_assign)(godot_pool_string_array_write_access *p_write, godot_pool_string_array_write_access *p_other);
+	void (*godot_pool_string_array_write_access_destroy)(godot_pool_string_array_write_access *p_write);
+	godot_pool_vector2_array_write_access *(*godot_pool_vector2_array_write_access_copy)(const godot_pool_vector2_array_write_access *p_write);
+	godot_vector2 *(*godot_pool_vector2_array_write_access_ptr)(const godot_pool_vector2_array_write_access *p_write);
+	void (*godot_pool_vector2_array_write_access_operator_assign)(godot_pool_vector2_array_write_access *p_write, godot_pool_vector2_array_write_access *p_other);
+	void (*godot_pool_vector2_array_write_access_destroy)(godot_pool_vector2_array_write_access *p_write);
+	godot_pool_vector3_array_write_access *(*godot_pool_vector3_array_write_access_copy)(const godot_pool_vector3_array_write_access *p_write);
+	godot_vector3 *(*godot_pool_vector3_array_write_access_ptr)(const godot_pool_vector3_array_write_access *p_write);
+	void (*godot_pool_vector3_array_write_access_operator_assign)(godot_pool_vector3_array_write_access *p_write, godot_pool_vector3_array_write_access *p_other);
+	void (*godot_pool_vector3_array_write_access_destroy)(godot_pool_vector3_array_write_access *p_write);
+	godot_pool_color_array_write_access *(*godot_pool_color_array_write_access_copy)(const godot_pool_color_array_write_access *p_write);
+	godot_color *(*godot_pool_color_array_write_access_ptr)(const godot_pool_color_array_write_access *p_write);
+	void (*godot_pool_color_array_write_access_operator_assign)(godot_pool_color_array_write_access *p_write, godot_pool_color_array_write_access *p_other);
+	void (*godot_pool_color_array_write_access_destroy)(godot_pool_color_array_write_access *p_write);
+	void (*godot_array_new)(godot_array *r_dest);
+	void (*godot_array_new_copy)(godot_array *r_dest, const godot_array *p_src);
+	void (*godot_array_new_pool_color_array)(godot_array *r_dest, const godot_pool_color_array *p_pca);
+	void (*godot_array_new_pool_vector3_array)(godot_array *r_dest, const godot_pool_vector3_array *p_pv3a);
+	void (*godot_array_new_pool_vector2_array)(godot_array *r_dest, const godot_pool_vector2_array *p_pv2a);
+	void (*godot_array_new_pool_string_array)(godot_array *r_dest, const godot_pool_string_array *p_psa);
+	void (*godot_array_new_pool_real_array)(godot_array *r_dest, const godot_pool_real_array *p_pra);
+	void (*godot_array_new_pool_int_array)(godot_array *r_dest, const godot_pool_int_array *p_pia);
+	void (*godot_array_new_pool_byte_array)(godot_array *r_dest, const godot_pool_byte_array *p_pba);
+	void (*godot_array_set)(godot_array *p_self, const godot_int p_idx, const godot_variant *p_value);
+	godot_variant (*godot_array_get)(const godot_array *p_self, const godot_int p_idx);
+	godot_variant *(*godot_array_operator_index)(godot_array *p_self, const godot_int p_idx);
+	const godot_variant *(*godot_array_operator_index_const)(const godot_array *p_self, const godot_int p_idx);
+	void (*godot_array_append)(godot_array *p_self, const godot_variant *p_value);
+	void (*godot_array_clear)(godot_array *p_self);
+	godot_int (*godot_array_count)(const godot_array *p_self, const godot_variant *p_value);
+	godot_bool (*godot_array_empty)(const godot_array *p_self);
+	void (*godot_array_erase)(godot_array *p_self, const godot_variant *p_value);
+	godot_variant (*godot_array_front)(const godot_array *p_self);
+	godot_variant (*godot_array_back)(const godot_array *p_self);
+	godot_int (*godot_array_find)(const godot_array *p_self, const godot_variant *p_what, const godot_int p_from);
+	godot_int (*godot_array_find_last)(const godot_array *p_self, const godot_variant *p_what);
+	godot_bool (*godot_array_has)(const godot_array *p_self, const godot_variant *p_value);
+	godot_int (*godot_array_hash)(const godot_array *p_self);
+	void (*godot_array_insert)(godot_array *p_self, const godot_int p_pos, const godot_variant *p_value);
+	void (*godot_array_invert)(godot_array *p_self);
+	godot_variant (*godot_array_pop_back)(godot_array *p_self);
+	godot_variant (*godot_array_pop_front)(godot_array *p_self);
+	void (*godot_array_push_back)(godot_array *p_self, const godot_variant *p_value);
+	void (*godot_array_push_front)(godot_array *p_self, const godot_variant *p_value);
+	void (*godot_array_remove)(godot_array *p_self, const godot_int p_idx);
+	void (*godot_array_resize)(godot_array *p_self, const godot_int p_size);
+	godot_int (*godot_array_rfind)(const godot_array *p_self, const godot_variant *p_what, const godot_int p_from);
+	godot_int (*godot_array_size)(const godot_array *p_self);
+	void (*godot_array_sort)(godot_array *p_self);
+	void (*godot_array_sort_custom)(godot_array *p_self, godot_object *p_obj, const godot_string *p_func);
+	godot_int (*godot_array_bsearch)(godot_array *p_self, const godot_variant *p_value, const godot_bool p_before);
+	godot_int (*godot_array_bsearch_custom)(godot_array *p_self, const godot_variant *p_value, godot_object *p_obj, const godot_string *p_func, const godot_bool p_before);
+	void (*godot_array_destroy)(godot_array *p_self);
+	void (*godot_dictionary_new)(godot_dictionary *r_dest);
+	void (*godot_dictionary_new_copy)(godot_dictionary *r_dest, const godot_dictionary *p_src);
+	void (*godot_dictionary_destroy)(godot_dictionary *p_self);
+	godot_int (*godot_dictionary_size)(const godot_dictionary *p_self);
+	godot_bool (*godot_dictionary_empty)(const godot_dictionary *p_self);
+	void (*godot_dictionary_clear)(godot_dictionary *p_self);
+	godot_bool (*godot_dictionary_has)(const godot_dictionary *p_self, const godot_variant *p_key);
+	godot_bool (*godot_dictionary_has_all)(const godot_dictionary *p_self, const godot_array *p_keys);
+	void (*godot_dictionary_erase)(godot_dictionary *p_self, const godot_variant *p_key);
+	godot_int (*godot_dictionary_hash)(const godot_dictionary *p_self);
+	godot_array (*godot_dictionary_keys)(const godot_dictionary *p_self);
+	godot_array (*godot_dictionary_values)(const godot_dictionary *p_self);
+	godot_variant (*godot_dictionary_get)(const godot_dictionary *p_self, const godot_variant *p_key);
+	void (*godot_dictionary_set)(godot_dictionary *p_self, const godot_variant *p_key, const godot_variant *p_value);
+	godot_variant *(*godot_dictionary_operator_index)(godot_dictionary *p_self, const godot_variant *p_key);
+	const godot_variant *(*godot_dictionary_operator_index_const)(const godot_dictionary *p_self, const godot_variant *p_key);
+	godot_variant *(*godot_dictionary_next)(const godot_dictionary *p_self, const godot_variant *p_key);
+	godot_bool (*godot_dictionary_operator_equal)(const godot_dictionary *p_self, const godot_dictionary *p_b);
+	godot_string (*godot_dictionary_to_json)(const godot_dictionary *p_self);
+	void (*godot_node_path_new)(godot_node_path *r_dest, const godot_string *p_from);
+	void (*godot_node_path_new_copy)(godot_node_path *r_dest, const godot_node_path *p_src);
+	void (*godot_node_path_destroy)(godot_node_path *p_self);
+	godot_string (*godot_node_path_as_string)(const godot_node_path *p_self);
+	godot_bool (*godot_node_path_is_absolute)(const godot_node_path *p_self);
+	godot_int (*godot_node_path_get_name_count)(const godot_node_path *p_self);
+	godot_string (*godot_node_path_get_name)(const godot_node_path *p_self, const godot_int p_idx);
+	godot_int (*godot_node_path_get_subname_count)(const godot_node_path *p_self);
+	godot_string (*godot_node_path_get_subname)(const godot_node_path *p_self, const godot_int p_idx);
+	godot_string (*godot_node_path_get_concatenated_subnames)(const godot_node_path *p_self);
+	godot_bool (*godot_node_path_is_empty)(const godot_node_path *p_self);
+	godot_bool (*godot_node_path_operator_equal)(const godot_node_path *p_self, const godot_node_path *p_b);
+	void (*godot_plane_new_with_reals)(godot_plane *r_dest, const godot_real p_a, const godot_real p_b, const godot_real p_c, const godot_real p_d);
+	void (*godot_plane_new_with_vectors)(godot_plane *r_dest, const godot_vector3 *p_v1, const godot_vector3 *p_v2, const godot_vector3 *p_v3);
+	void (*godot_plane_new_with_normal)(godot_plane *r_dest, const godot_vector3 *p_normal, const godot_real p_d);
+	godot_string (*godot_plane_as_string)(const godot_plane *p_self);
+	godot_plane (*godot_plane_normalized)(const godot_plane *p_self);
+	godot_vector3 (*godot_plane_center)(const godot_plane *p_self);
+	godot_vector3 (*godot_plane_get_any_point)(const godot_plane *p_self);
+	godot_bool (*godot_plane_is_point_over)(const godot_plane *p_self, const godot_vector3 *p_point);
+	godot_real (*godot_plane_distance_to)(const godot_plane *p_self, const godot_vector3 *p_point);
+	godot_bool (*godot_plane_has_point)(const godot_plane *p_self, const godot_vector3 *p_point, const godot_real p_epsilon);
+	godot_vector3 (*godot_plane_project)(const godot_plane *p_self, const godot_vector3 *p_point);
+	godot_bool (*godot_plane_intersect_3)(const godot_plane *p_self, godot_vector3 *r_dest, const godot_plane *p_b, const godot_plane *p_c);
+	godot_bool (*godot_plane_intersects_ray)(const godot_plane *p_self, godot_vector3 *r_dest, const godot_vector3 *p_from, const godot_vector3 *p_dir);
+	godot_bool (*godot_plane_intersects_segment)(const godot_plane *p_self, godot_vector3 *r_dest, const godot_vector3 *p_begin, const godot_vector3 *p_end);
+	godot_plane (*godot_plane_operator_neg)(const godot_plane *p_self);
+	godot_bool (*godot_plane_operator_equal)(const godot_plane *p_self, const godot_plane *p_b);
+	void (*godot_plane_set_normal)(godot_plane *p_self, const godot_vector3 *p_normal);
+	godot_vector3 (*godot_plane_get_normal)(const godot_plane *p_self);
+	godot_real (*godot_plane_get_d)(const godot_plane *p_self);
+	void (*godot_plane_set_d)(godot_plane *p_self, const godot_real p_d);
+	void (*godot_rect2_new_with_position_and_size)(godot_rect2 *r_dest, const godot_vector2 *p_pos, const godot_vector2 *p_size);
+	void (*godot_rect2_new)(godot_rect2 *r_dest, const godot_real p_x, const godot_real p_y, const godot_real p_width, const godot_real p_height);
+	godot_string (*godot_rect2_as_string)(const godot_rect2 *p_self);
+	godot_real (*godot_rect2_get_area)(const godot_rect2 *p_self);
+	godot_bool (*godot_rect2_intersects)(const godot_rect2 *p_self, const godot_rect2 *p_b);
+	godot_bool (*godot_rect2_encloses)(const godot_rect2 *p_self, const godot_rect2 *p_b);
+	godot_bool (*godot_rect2_has_no_area)(const godot_rect2 *p_self);
+	godot_rect2 (*godot_rect2_clip)(const godot_rect2 *p_self, const godot_rect2 *p_b);
+	godot_rect2 (*godot_rect2_merge)(const godot_rect2 *p_self, const godot_rect2 *p_b);
+	godot_bool (*godot_rect2_has_point)(const godot_rect2 *p_self, const godot_vector2 *p_point);
+	godot_rect2 (*godot_rect2_grow)(const godot_rect2 *p_self, const godot_real p_by);
+	godot_rect2 (*godot_rect2_expand)(const godot_rect2 *p_self, const godot_vector2 *p_to);
+	godot_bool (*godot_rect2_operator_equal)(const godot_rect2 *p_self, const godot_rect2 *p_b);
+	godot_vector2 (*godot_rect2_get_position)(const godot_rect2 *p_self);
+	godot_vector2 (*godot_rect2_get_size)(const godot_rect2 *p_self);
+	void (*godot_rect2_set_position)(godot_rect2 *p_self, const godot_vector2 *p_pos);
+	void (*godot_rect2_set_size)(godot_rect2 *p_self, const godot_vector2 *p_size);
+	void (*godot_aabb_new)(godot_aabb *r_dest, const godot_vector3 *p_pos, const godot_vector3 *p_size);
+	godot_vector3 (*godot_aabb_get_position)(const godot_aabb *p_self);
+	void (*godot_aabb_set_position)(const godot_aabb *p_self, const godot_vector3 *p_v);
+	godot_vector3 (*godot_aabb_get_size)(const godot_aabb *p_self);
+	void (*godot_aabb_set_size)(const godot_aabb *p_self, const godot_vector3 *p_v);
+	godot_string (*godot_aabb_as_string)(const godot_aabb *p_self);
+	godot_real (*godot_aabb_get_area)(const godot_aabb *p_self);
+	godot_bool (*godot_aabb_has_no_area)(const godot_aabb *p_self);
+	godot_bool (*godot_aabb_has_no_surface)(const godot_aabb *p_self);
+	godot_bool (*godot_aabb_intersects)(const godot_aabb *p_self, const godot_aabb *p_with);
+	godot_bool (*godot_aabb_encloses)(const godot_aabb *p_self, const godot_aabb *p_with);
+	godot_aabb (*godot_aabb_merge)(const godot_aabb *p_self, const godot_aabb *p_with);
+	godot_aabb (*godot_aabb_intersection)(const godot_aabb *p_self, const godot_aabb *p_with);
+	godot_bool (*godot_aabb_intersects_plane)(const godot_aabb *p_self, const godot_plane *p_plane);
+	godot_bool (*godot_aabb_intersects_segment)(const godot_aabb *p_self, const godot_vector3 *p_from, const godot_vector3 *p_to);
+	godot_bool (*godot_aabb_has_point)(const godot_aabb *p_self, const godot_vector3 *p_point);
+	godot_vector3 (*godot_aabb_get_support)(const godot_aabb *p_self, const godot_vector3 *p_dir);
+	godot_vector3 (*godot_aabb_get_longest_axis)(const godot_aabb *p_self);
+	godot_int (*godot_aabb_get_longest_axis_index)(const godot_aabb *p_self);
+	godot_real (*godot_aabb_get_longest_axis_size)(const godot_aabb *p_self);
+	godot_vector3 (*godot_aabb_get_shortest_axis)(const godot_aabb *p_self);
+	godot_int (*godot_aabb_get_shortest_axis_index)(const godot_aabb *p_self);
+	godot_real (*godot_aabb_get_shortest_axis_size)(const godot_aabb *p_self);
+	godot_aabb (*godot_aabb_expand)(const godot_aabb *p_self, const godot_vector3 *p_to_point);
+	godot_aabb (*godot_aabb_grow)(const godot_aabb *p_self, const godot_real p_by);
+	godot_vector3 (*godot_aabb_get_endpoint)(const godot_aabb *p_self, const godot_int p_idx);
+	godot_bool (*godot_aabb_operator_equal)(const godot_aabb *p_self, const godot_aabb *p_b);
+	void (*godot_rid_new)(godot_rid *r_dest);
+	godot_int (*godot_rid_get_id)(const godot_rid *p_self);
+	void (*godot_rid_new_with_resource)(godot_rid *r_dest, const godot_object *p_from);
+	godot_bool (*godot_rid_operator_equal)(const godot_rid *p_self, const godot_rid *p_b);
+	godot_bool (*godot_rid_operator_less)(const godot_rid *p_self, const godot_rid *p_b);
+	void (*godot_transform_new_with_axis_origin)(godot_transform *r_dest, const godot_vector3 *p_x_axis, const godot_vector3 *p_y_axis, const godot_vector3 *p_z_axis, const godot_vector3 *p_origin);
+	void (*godot_transform_new)(godot_transform *r_dest, const godot_basis *p_basis, const godot_vector3 *p_origin);
+	godot_basis (*godot_transform_get_basis)(const godot_transform *p_self);
+	void (*godot_transform_set_basis)(godot_transform *p_self, const godot_basis *p_v);
+	godot_vector3 (*godot_transform_get_origin)(const godot_transform *p_self);
+	void (*godot_transform_set_origin)(godot_transform *p_self, const godot_vector3 *p_v);
+	godot_string (*godot_transform_as_string)(const godot_transform *p_self);
+	godot_transform (*godot_transform_inverse)(const godot_transform *p_self);
+	godot_transform (*godot_transform_affine_inverse)(const godot_transform *p_self);
+	godot_transform (*godot_transform_orthonormalized)(const godot_transform *p_self);
+	godot_transform (*godot_transform_rotated)(const godot_transform *p_self, const godot_vector3 *p_axis, const godot_real p_phi);
+	godot_transform (*godot_transform_scaled)(const godot_transform *p_self, const godot_vector3 *p_scale);
+	godot_transform (*godot_transform_translated)(const godot_transform *p_self, const godot_vector3 *p_ofs);
+	godot_transform (*godot_transform_looking_at)(const godot_transform *p_self, const godot_vector3 *p_target, const godot_vector3 *p_up);
+	godot_plane (*godot_transform_xform_plane)(const godot_transform *p_self, const godot_plane *p_v);
+	godot_plane (*godot_transform_xform_inv_plane)(const godot_transform *p_self, const godot_plane *p_v);
+	void (*godot_transform_new_identity)(godot_transform *r_dest);
+	godot_bool (*godot_transform_operator_equal)(const godot_transform *p_self, const godot_transform *p_b);
+	godot_transform (*godot_transform_operator_multiply)(const godot_transform *p_self, const godot_transform *p_b);
+	godot_vector3 (*godot_transform_xform_vector3)(const godot_transform *p_self, const godot_vector3 *p_v);
+	godot_vector3 (*godot_transform_xform_inv_vector3)(const godot_transform *p_self, const godot_vector3 *p_v);
+	godot_aabb (*godot_transform_xform_aabb)(const godot_transform *p_self, const godot_aabb *p_v);
+	godot_aabb (*godot_transform_xform_inv_aabb)(const godot_transform *p_self, const godot_aabb *p_v);
+	void (*godot_transform2d_new)(godot_transform2d *r_dest, const godot_real p_rot, const godot_vector2 *p_pos);
+	void (*godot_transform2d_new_axis_origin)(godot_transform2d *r_dest, const godot_vector2 *p_x_axis, const godot_vector2 *p_y_axis, const godot_vector2 *p_origin);
+	godot_string (*godot_transform2d_as_string)(const godot_transform2d *p_self);
+	godot_transform2d (*godot_transform2d_inverse)(const godot_transform2d *p_self);
+	godot_transform2d (*godot_transform2d_affine_inverse)(const godot_transform2d *p_self);
+	godot_real (*godot_transform2d_get_rotation)(const godot_transform2d *p_self);
+	godot_vector2 (*godot_transform2d_get_origin)(const godot_transform2d *p_self);
+	godot_vector2 (*godot_transform2d_get_scale)(const godot_transform2d *p_self);
+	godot_transform2d (*godot_transform2d_orthonormalized)(const godot_transform2d *p_self);
+	godot_transform2d (*godot_transform2d_rotated)(const godot_transform2d *p_self, const godot_real p_phi);
+	godot_transform2d (*godot_transform2d_scaled)(const godot_transform2d *p_self, const godot_vector2 *p_scale);
+	godot_transform2d (*godot_transform2d_translated)(const godot_transform2d *p_self, const godot_vector2 *p_offset);
+	godot_vector2 (*godot_transform2d_xform_vector2)(const godot_transform2d *p_self, const godot_vector2 *p_v);
+	godot_vector2 (*godot_transform2d_xform_inv_vector2)(const godot_transform2d *p_self, const godot_vector2 *p_v);
+	godot_vector2 (*godot_transform2d_basis_xform_vector2)(const godot_transform2d *p_self, const godot_vector2 *p_v);
+	godot_vector2 (*godot_transform2d_basis_xform_inv_vector2)(const godot_transform2d *p_self, const godot_vector2 *p_v);
+	godot_transform2d (*godot_transform2d_interpolate_with)(const godot_transform2d *p_self, const godot_transform2d *p_m, const godot_real p_c);
+	godot_bool (*godot_transform2d_operator_equal)(const godot_transform2d *p_self, const godot_transform2d *p_b);
+	godot_transform2d (*godot_transform2d_operator_multiply)(const godot_transform2d *p_self, const godot_transform2d *p_b);
+	void (*godot_transform2d_new_identity)(godot_transform2d *r_dest);
+	godot_rect2 (*godot_transform2d_xform_rect2)(const godot_transform2d *p_self, const godot_rect2 *p_v);
+	godot_rect2 (*godot_transform2d_xform_inv_rect2)(const godot_transform2d *p_self, const godot_rect2 *p_v);
+	godot_variant_type (*godot_variant_get_type)(const godot_variant *p_v);
+	void (*godot_variant_new_copy)(godot_variant *r_dest, const godot_variant *p_src);
+	void (*godot_variant_new_nil)(godot_variant *r_dest);
+	void (*godot_variant_new_bool)(godot_variant *r_dest, const godot_bool p_b);
+	void (*godot_variant_new_uint)(godot_variant *r_dest, const uint64_t p_i);
+	void (*godot_variant_new_int)(godot_variant *r_dest, const int64_t p_i);
+	void (*godot_variant_new_real)(godot_variant *r_dest, const double p_r);
+	void (*godot_variant_new_string)(godot_variant *r_dest, const godot_string *p_s);
+	void (*godot_variant_new_vector2)(godot_variant *r_dest, const godot_vector2 *p_v2);
+	void (*godot_variant_new_rect2)(godot_variant *r_dest, const godot_rect2 *p_rect2);
+	void (*godot_variant_new_vector3)(godot_variant *r_dest, const godot_vector3 *p_v3);
+	void (*godot_variant_new_transform2d)(godot_variant *r_dest, const godot_transform2d *p_t2d);
+	void (*godot_variant_new_plane)(godot_variant *r_dest, const godot_plane *p_plane);
+	void (*godot_variant_new_quat)(godot_variant *r_dest, const godot_quat *p_quat);
+	void (*godot_variant_new_aabb)(godot_variant *r_dest, const godot_aabb *p_aabb);
+	void (*godot_variant_new_basis)(godot_variant *r_dest, const godot_basis *p_basis);
+	void (*godot_variant_new_transform)(godot_variant *r_dest, const godot_transform *p_trans);
+	void (*godot_variant_new_color)(godot_variant *r_dest, const godot_color *p_color);
+	void (*godot_variant_new_node_path)(godot_variant *r_dest, const godot_node_path *p_np);
+	void (*godot_variant_new_rid)(godot_variant *r_dest, const godot_rid *p_rid);
+	void (*godot_variant_new_object)(godot_variant *r_dest, const godot_object *p_obj);
+	void (*godot_variant_new_dictionary)(godot_variant *r_dest, const godot_dictionary *p_dict);
+	void (*godot_variant_new_array)(godot_variant *r_dest, const godot_array *p_arr);
+	void (*godot_variant_new_pool_byte_array)(godot_variant *r_dest, const godot_pool_byte_array *p_pba);
+	void (*godot_variant_new_pool_int_array)(godot_variant *r_dest, const godot_pool_int_array *p_pia);
+	void (*godot_variant_new_pool_real_array)(godot_variant *r_dest, const godot_pool_real_array *p_pra);
+	void (*godot_variant_new_pool_string_array)(godot_variant *r_dest, const godot_pool_string_array *p_psa);
+	void (*godot_variant_new_pool_vector2_array)(godot_variant *r_dest, const godot_pool_vector2_array *p_pv2a);
+	void (*godot_variant_new_pool_vector3_array)(godot_variant *r_dest, const godot_pool_vector3_array *p_pv3a);
+	void (*godot_variant_new_pool_color_array)(godot_variant *r_dest, const godot_pool_color_array *p_pca);
+	godot_bool (*godot_variant_as_bool)(const godot_variant *p_self);
+	uint64_t (*godot_variant_as_uint)(const godot_variant *p_self);
+	int64_t (*godot_variant_as_int)(const godot_variant *p_self);
+	double (*godot_variant_as_real)(const godot_variant *p_self);
+	godot_string (*godot_variant_as_string)(const godot_variant *p_self);
+	godot_vector2 (*godot_variant_as_vector2)(const godot_variant *p_self);
+	godot_rect2 (*godot_variant_as_rect2)(const godot_variant *p_self);
+	godot_vector3 (*godot_variant_as_vector3)(const godot_variant *p_self);
+	godot_transform2d (*godot_variant_as_transform2d)(const godot_variant *p_self);
+	godot_plane (*godot_variant_as_plane)(const godot_variant *p_self);
+	godot_quat (*godot_variant_as_quat)(const godot_variant *p_self);
+	godot_aabb (*godot_variant_as_aabb)(const godot_variant *p_self);
+	godot_basis (*godot_variant_as_basis)(const godot_variant *p_self);
+	godot_transform (*godot_variant_as_transform)(const godot_variant *p_self);
+	godot_color (*godot_variant_as_color)(const godot_variant *p_self);
+	godot_node_path (*godot_variant_as_node_path)(const godot_variant *p_self);
+	godot_rid (*godot_variant_as_rid)(const godot_variant *p_self);
+	godot_object *(*godot_variant_as_object)(const godot_variant *p_self);
+	godot_dictionary (*godot_variant_as_dictionary)(const godot_variant *p_self);
+	godot_array (*godot_variant_as_array)(const godot_variant *p_self);
+	godot_pool_byte_array (*godot_variant_as_pool_byte_array)(const godot_variant *p_self);
+	godot_pool_int_array (*godot_variant_as_pool_int_array)(const godot_variant *p_self);
+	godot_pool_real_array (*godot_variant_as_pool_real_array)(const godot_variant *p_self);
+	godot_pool_string_array (*godot_variant_as_pool_string_array)(const godot_variant *p_self);
+	godot_pool_vector2_array (*godot_variant_as_pool_vector2_array)(const godot_variant *p_self);
+	godot_pool_vector3_array (*godot_variant_as_pool_vector3_array)(const godot_variant *p_self);
+	godot_pool_color_array (*godot_variant_as_pool_color_array)(const godot_variant *p_self);
+	godot_variant (*godot_variant_call)(godot_variant *p_self, const godot_string *p_method, const godot_variant **p_args, const godot_int p_argcount, godot_variant_call_error *r_error);
+	godot_bool (*godot_variant_has_method)(const godot_variant *p_self, const godot_string *p_method);
+	godot_bool (*godot_variant_operator_equal)(const godot_variant *p_self, const godot_variant *p_other);
+	godot_bool (*godot_variant_operator_less)(const godot_variant *p_self, const godot_variant *p_other);
+	godot_bool (*godot_variant_hash_compare)(const godot_variant *p_self, const godot_variant *p_other);
+	godot_bool (*godot_variant_booleanize)(const godot_variant *p_self);
+	void (*godot_variant_destroy)(godot_variant *p_self);
+	godot_int (*godot_char_string_length)(const godot_char_string *p_cs);
+	const char *(*godot_char_string_get_data)(const godot_char_string *p_cs);
+	void (*godot_char_string_destroy)(godot_char_string *p_cs);
+	void (*godot_string_new)(godot_string *r_dest);
+	void (*godot_string_new_copy)(godot_string *r_dest, const godot_string *p_src);
+	void (*godot_string_new_with_wide_string)(godot_string *r_dest, const wchar_t *p_contents, const int p_size);
+	wchar_t *(*godot_string_operator_index)(godot_string *p_self, const godot_int p_idx);
+	wchar_t (*godot_string_operator_index_const)(const godot_string *p_self, const godot_int p_idx);
+	const wchar_t *(*godot_string_wide_str)(const godot_string *p_self);
+	godot_bool (*godot_string_operator_equal)(const godot_string *p_self, const godot_string *p_b);
+	godot_bool (*godot_string_operator_less)(const godot_string *p_self, const godot_string *p_b);
+	godot_string (*godot_string_operator_plus)(const godot_string *p_self, const godot_string *p_b);
+	godot_int (*godot_string_length)(const godot_string *p_self);
+	signed char (*godot_string_casecmp_to)(const godot_string *p_self, const godot_string *p_str);
+	signed char (*godot_string_nocasecmp_to)(const godot_string *p_self, const godot_string *p_str);
+	signed char (*godot_string_naturalnocasecmp_to)(const godot_string *p_self, const godot_string *p_str);
+	godot_bool (*godot_string_begins_with)(const godot_string *p_self, const godot_string *p_string);
+	godot_bool (*godot_string_begins_with_char_array)(const godot_string *p_self, const char *p_char_array);
+	godot_array (*godot_string_bigrams)(const godot_string *p_self);
+	godot_string (*godot_string_chr)(wchar_t p_character);
+	godot_bool (*godot_string_ends_with)(const godot_string *p_self, const godot_string *p_string);
+	godot_int (*godot_string_find)(const godot_string *p_self, godot_string p_what);
+	godot_int (*godot_string_find_from)(const godot_string *p_self, godot_string p_what, godot_int p_from);
+	godot_int (*godot_string_findmk)(const godot_string *p_self, const godot_array *p_keys);
+	godot_int (*godot_string_findmk_from)(const godot_string *p_self, const godot_array *p_keys, godot_int p_from);
+	godot_int (*godot_string_findmk_from_in_place)(const godot_string *p_self, const godot_array *p_keys, godot_int p_from, godot_int *r_key);
+	godot_int (*godot_string_findn)(const godot_string *p_self, godot_string p_what);
+	godot_int (*godot_string_findn_from)(const godot_string *p_self, godot_string p_what, godot_int p_from);
+	godot_int (*godot_string_find_last)(const godot_string *p_self, godot_string p_what);
+	godot_string (*godot_string_format)(const godot_string *p_self, const godot_variant *p_values);
+	godot_string (*godot_string_format_with_custom_placeholder)(const godot_string *p_self, const godot_variant *p_values, const char *p_placeholder);
+	godot_string (*godot_string_hex_encode_buffer)(const uint8_t *p_buffer, godot_int p_len);
+	godot_int (*godot_string_hex_to_int)(const godot_string *p_self);
+	godot_int (*godot_string_hex_to_int_without_prefix)(const godot_string *p_self);
+	godot_string (*godot_string_insert)(const godot_string *p_self, godot_int p_at_pos, godot_string p_string);
+	godot_bool (*godot_string_is_numeric)(const godot_string *p_self);
+	godot_bool (*godot_string_is_subsequence_of)(const godot_string *p_self, const godot_string *p_string);
+	godot_bool (*godot_string_is_subsequence_ofi)(const godot_string *p_self, const godot_string *p_string);
+	godot_string (*godot_string_lpad)(const godot_string *p_self, godot_int p_min_length);
+	godot_string (*godot_string_lpad_with_custom_character)(const godot_string *p_self, godot_int p_min_length, const godot_string *p_character);
+	godot_bool (*godot_string_match)(const godot_string *p_self, const godot_string *p_wildcard);
+	godot_bool (*godot_string_matchn)(const godot_string *p_self, const godot_string *p_wildcard);
+	godot_string (*godot_string_md5)(const uint8_t *p_md5);
+	godot_string (*godot_string_num)(double p_num);
+	godot_string (*godot_string_num_int64)(int64_t p_num, godot_int p_base);
+	godot_string (*godot_string_num_int64_capitalized)(int64_t p_num, godot_int p_base, godot_bool p_capitalize_hex);
+	godot_string (*godot_string_num_real)(double p_num);
+	godot_string (*godot_string_num_scientific)(double p_num);
+	godot_string (*godot_string_num_with_decimals)(double p_num, godot_int p_decimals);
+	godot_string (*godot_string_pad_decimals)(const godot_string *p_self, godot_int p_digits);
+	godot_string (*godot_string_pad_zeros)(const godot_string *p_self, godot_int p_digits);
+	godot_string (*godot_string_replace_first)(const godot_string *p_self, godot_string p_key, godot_string p_with);
+	godot_string (*godot_string_replace)(const godot_string *p_self, godot_string p_key, godot_string p_with);
+	godot_string (*godot_string_replacen)(const godot_string *p_self, godot_string p_key, godot_string p_with);
+	godot_int (*godot_string_rfind)(const godot_string *p_self, godot_string p_what);
+	godot_int (*godot_string_rfindn)(const godot_string *p_self, godot_string p_what);
+	godot_int (*godot_string_rfind_from)(const godot_string *p_self, godot_string p_what, godot_int p_from);
+	godot_int (*godot_string_rfindn_from)(const godot_string *p_self, godot_string p_what, godot_int p_from);
+	godot_string (*godot_string_rpad)(const godot_string *p_self, godot_int p_min_length);
+	godot_string (*godot_string_rpad_with_custom_character)(const godot_string *p_self, godot_int p_min_length, const godot_string *p_character);
+	godot_real (*godot_string_similarity)(const godot_string *p_self, const godot_string *p_string);
+	godot_string (*godot_string_sprintf)(const godot_string *p_self, const godot_array *p_values, godot_bool *p_error);
+	godot_string (*godot_string_substr)(const godot_string *p_self, godot_int p_from, godot_int p_chars);
+	double (*godot_string_to_double)(const godot_string *p_self);
+	godot_real (*godot_string_to_float)(const godot_string *p_self);
+	godot_int (*godot_string_to_int)(const godot_string *p_self);
+	godot_string (*godot_string_camelcase_to_underscore)(const godot_string *p_self);
+	godot_string (*godot_string_camelcase_to_underscore_lowercased)(const godot_string *p_self);
+	godot_string (*godot_string_capitalize)(const godot_string *p_self);
+	double (*godot_string_char_to_double)(const char *p_what);
+	godot_int (*godot_string_char_to_int)(const char *p_what);
+	int64_t (*godot_string_wchar_to_int)(const wchar_t *p_str);
+	godot_int (*godot_string_char_to_int_with_len)(const char *p_what, godot_int p_len);
+	int64_t (*godot_string_char_to_int64_with_len)(const wchar_t *p_str, int p_len);
+	int64_t (*godot_string_hex_to_int64)(const godot_string *p_self);
+	int64_t (*godot_string_hex_to_int64_with_prefix)(const godot_string *p_self);
+	int64_t (*godot_string_to_int64)(const godot_string *p_self);
+	double (*godot_string_unicode_char_to_double)(const wchar_t *p_str, const wchar_t **r_end);
+	godot_int (*godot_string_get_slice_count)(const godot_string *p_self, godot_string p_splitter);
+	godot_string (*godot_string_get_slice)(const godot_string *p_self, godot_string p_splitter, godot_int p_slice);
+	godot_string (*godot_string_get_slicec)(const godot_string *p_self, wchar_t p_splitter, godot_int p_slice);
+	godot_array (*godot_string_split)(const godot_string *p_self, const godot_string *p_splitter);
+	godot_array (*godot_string_split_allow_empty)(const godot_string *p_self, const godot_string *p_splitter);
+	godot_array (*godot_string_split_floats)(const godot_string *p_self, const godot_string *p_splitter);
+	godot_array (*godot_string_split_floats_allows_empty)(const godot_string *p_self, const godot_string *p_splitter);
+	godot_array (*godot_string_split_floats_mk)(const godot_string *p_self, const godot_array *p_splitters);
+	godot_array (*godot_string_split_floats_mk_allows_empty)(const godot_string *p_self, const godot_array *p_splitters);
+	godot_array (*godot_string_split_ints)(const godot_string *p_self, const godot_string *p_splitter);
+	godot_array (*godot_string_split_ints_allows_empty)(const godot_string *p_self, const godot_string *p_splitter);
+	godot_array (*godot_string_split_ints_mk)(const godot_string *p_self, const godot_array *p_splitters);
+	godot_array (*godot_string_split_ints_mk_allows_empty)(const godot_string *p_self, const godot_array *p_splitters);
+	godot_array (*godot_string_split_spaces)(const godot_string *p_self);
+	wchar_t (*godot_string_char_lowercase)(wchar_t p_char);
+	wchar_t (*godot_string_char_uppercase)(wchar_t p_char);
+	godot_string (*godot_string_to_lower)(const godot_string *p_self);
+	godot_string (*godot_string_to_upper)(const godot_string *p_self);
+	godot_string (*godot_string_get_basename)(const godot_string *p_self);
+	godot_string (*godot_string_get_extension)(const godot_string *p_self);
+	godot_string (*godot_string_left)(const godot_string *p_self, godot_int p_pos);
+	wchar_t (*godot_string_ord_at)(const godot_string *p_self, godot_int p_idx);
+	godot_string (*godot_string_plus_file)(const godot_string *p_self, const godot_string *p_file);
+	godot_string (*godot_string_right)(const godot_string *p_self, godot_int p_pos);
+	godot_string (*godot_string_strip_edges)(const godot_string *p_self, godot_bool p_left, godot_bool p_right);
+	godot_string (*godot_string_strip_escapes)(const godot_string *p_self);
+	void (*godot_string_erase)(godot_string *p_self, godot_int p_pos, godot_int p_chars);
+	godot_char_string (*godot_string_ascii)(const godot_string *p_self);
+	godot_char_string (*godot_string_ascii_extended)(const godot_string *p_self);
+	godot_char_string (*godot_string_utf8)(const godot_string *p_self);
+	godot_bool (*godot_string_parse_utf8)(godot_string *p_self, const char *p_utf8);
+	godot_bool (*godot_string_parse_utf8_with_len)(godot_string *p_self, const char *p_utf8, godot_int p_len);
+	godot_string (*godot_string_chars_to_utf8)(const char *p_utf8);
+	godot_string (*godot_string_chars_to_utf8_with_len)(const char *p_utf8, godot_int p_len);
+	uint32_t (*godot_string_hash)(const godot_string *p_self);
+	uint64_t (*godot_string_hash64)(const godot_string *p_self);
+	uint32_t (*godot_string_hash_chars)(const char *p_cstr);
+	uint32_t (*godot_string_hash_chars_with_len)(const char *p_cstr, godot_int p_len);
+	uint32_t (*godot_string_hash_utf8_chars)(const wchar_t *p_str);
+	uint32_t (*godot_string_hash_utf8_chars_with_len)(const wchar_t *p_str, godot_int p_len);
+	godot_pool_byte_array (*godot_string_md5_buffer)(const godot_string *p_self);
+	godot_string (*godot_string_md5_text)(const godot_string *p_self);
+	godot_pool_byte_array (*godot_string_sha256_buffer)(const godot_string *p_self);
+	godot_string (*godot_string_sha256_text)(const godot_string *p_self);
+	godot_bool (*godot_string_empty)(const godot_string *p_self);
+	godot_string (*godot_string_get_base_dir)(const godot_string *p_self);
+	godot_string (*godot_string_get_file)(const godot_string *p_self);
+	godot_string (*godot_string_humanize_size)(size_t p_size);
+	godot_bool (*godot_string_is_abs_path)(const godot_string *p_self);
+	godot_bool (*godot_string_is_rel_path)(const godot_string *p_self);
+	godot_bool (*godot_string_is_resource_file)(const godot_string *p_self);
+	godot_string (*godot_string_path_to)(const godot_string *p_self, const godot_string *p_path);
+	godot_string (*godot_string_path_to_file)(const godot_string *p_self, const godot_string *p_path);
+	godot_string (*godot_string_simplify_path)(const godot_string *p_self);
+	godot_string (*godot_string_c_escape)(const godot_string *p_self);
+	godot_string (*godot_string_c_escape_multiline)(const godot_string *p_self);
+	godot_string (*godot_string_c_unescape)(const godot_string *p_self);
+	godot_string (*godot_string_http_escape)(const godot_string *p_self);
+	godot_string (*godot_string_http_unescape)(const godot_string *p_self);
+	godot_string (*godot_string_json_escape)(const godot_string *p_self);
+	godot_string (*godot_string_word_wrap)(const godot_string *p_self, godot_int p_chars_per_line);
+	godot_string (*godot_string_xml_escape)(const godot_string *p_self);
+	godot_string (*godot_string_xml_escape_with_quotes)(const godot_string *p_self);
+	godot_string (*godot_string_xml_unescape)(const godot_string *p_self);
+	godot_string (*godot_string_percent_decode)(const godot_string *p_self);
+	godot_string (*godot_string_percent_encode)(const godot_string *p_self);
+	godot_bool (*godot_string_is_valid_float)(const godot_string *p_self);
+	godot_bool (*godot_string_is_valid_hex_number)(const godot_string *p_self, godot_bool p_with_prefix);
+	godot_bool (*godot_string_is_valid_html_color)(const godot_string *p_self);
+	godot_bool (*godot_string_is_valid_identifier)(const godot_string *p_self);
+	godot_bool (*godot_string_is_valid_integer)(const godot_string *p_self);
+	godot_bool (*godot_string_is_valid_ip_address)(const godot_string *p_self);
+	void (*godot_string_destroy)(godot_string *p_self);
+	void (*godot_string_name_new)(godot_string_name *r_dest, const godot_string *p_name);
+	void (*godot_string_name_new_data)(godot_string_name *r_dest, const char *p_name);
+	godot_string (*godot_string_name_get_name)(const godot_string_name *p_self);
+	uint32_t (*godot_string_name_get_hash)(const godot_string_name *p_self);
+	const void *(*godot_string_name_get_data_unique_pointer)(const godot_string_name *p_self);
+	godot_bool (*godot_string_name_operator_equal)(const godot_string_name *p_self, const godot_string_name *p_other);
+	godot_bool (*godot_string_name_operator_less)(const godot_string_name *p_self, const godot_string_name *p_other);
+	void (*godot_string_name_destroy)(godot_string_name *p_self);
+	void (*godot_object_destroy)(godot_object *p_o);
+	godot_object *(*godot_global_get_singleton)(char *p_name);
+	godot_method_bind *(*godot_method_bind_get_method)(const char *p_classname, const char *p_methodname);
+	void (*godot_method_bind_ptrcall)(godot_method_bind *p_method_bind, godot_object *p_instance, const void **p_args, void *p_ret);
+	godot_variant (*godot_method_bind_call)(godot_method_bind *p_method_bind, godot_object *p_instance, const godot_variant **p_args, const int p_arg_count, godot_variant_call_error *p_call_error);
+	godot_class_constructor (*godot_get_class_constructor)(const char *p_classname);
+	godot_dictionary (*godot_get_global_constants)();
+	void (*godot_register_native_call_type)(const char *call_type, native_call_cb p_callback);
+	void *(*godot_alloc)(int p_bytes);
+	void *(*godot_realloc)(void *p_ptr, int p_bytes);
+	void (*godot_free)(void *p_ptr);
+	void (*godot_print_error)(const char *p_description, const char *p_function, const char *p_file, int p_line);
+	void (*godot_print_warning)(const char *p_description, const char *p_function, const char *p_file, int p_line);
+	void (*godot_print)(const godot_string *p_message);
+} godot_gdnative_core_api_struct;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_GDNATIVE_API_STRUCT_H
diff --git a/godot_headers/nativescript/godot_nativescript.h b/godot_headers/nativescript/godot_nativescript.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/nativescript/godot_nativescript.h
@@ -0,0 +1,249 @@
+/*************************************************************************/
+/*  godot_nativescript.h                                                 */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_NATIVESCRIPT_H
+#define GODOT_NATIVESCRIPT_H
+
+#include <gdnative/gdnative.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+	GODOT_METHOD_RPC_MODE_DISABLED,
+	GODOT_METHOD_RPC_MODE_REMOTE,
+	GODOT_METHOD_RPC_MODE_SYNC,
+	GODOT_METHOD_RPC_MODE_MASTER,
+	GODOT_METHOD_RPC_MODE_SLAVE,
+	GODOT_METHOD_RPC_MODE_REMOTESYNC,
+	GODOT_METHOD_RPC_MODE_MASTERSYNC,
+	GODOT_METHOD_RPC_MODE_SLAVESYNC,
+} godot_method_rpc_mode;
+
+typedef enum {
+	GODOT_PROPERTY_HINT_NONE, ///< no hint provided.
+	GODOT_PROPERTY_HINT_RANGE, ///< hint_text = "min,max,step,slider; //slider is optional"
+	GODOT_PROPERTY_HINT_EXP_RANGE, ///< hint_text = "min,max,step", exponential edit
+	GODOT_PROPERTY_HINT_ENUM, ///< hint_text= "val1,val2,val3,etc"
+	GODOT_PROPERTY_HINT_EXP_EASING, /// exponential easing function (Math::ease)
+	GODOT_PROPERTY_HINT_LENGTH, ///< hint_text= "length" (as integer)
+	GODOT_PROPERTY_HINT_SPRITE_FRAME,
+	GODOT_PROPERTY_HINT_KEY_ACCEL, ///< hint_text= "length" (as integer)
+	GODOT_PROPERTY_HINT_FLAGS, ///< hint_text= "flag1,flag2,etc" (as bit flags)
+	GODOT_PROPERTY_HINT_LAYERS_2D_RENDER,
+	GODOT_PROPERTY_HINT_LAYERS_2D_PHYSICS,
+	GODOT_PROPERTY_HINT_LAYERS_3D_RENDER,
+	GODOT_PROPERTY_HINT_LAYERS_3D_PHYSICS,
+	GODOT_PROPERTY_HINT_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc,"
+	GODOT_PROPERTY_HINT_DIR, ///< a directort path must be passed
+	GODOT_PROPERTY_HINT_GLOBAL_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc,"
+	GODOT_PROPERTY_HINT_GLOBAL_DIR, ///< a directort path must be passed
+	GODOT_PROPERTY_HINT_RESOURCE_TYPE, ///< a resource object type
+	GODOT_PROPERTY_HINT_MULTILINE_TEXT, ///< used for string properties that can contain multiple lines
+	GODOT_PROPERTY_HINT_PLACEHOLDER_TEXT, ///< used to set a placeholder text for string properties
+	GODOT_PROPERTY_HINT_COLOR_NO_ALPHA, ///< used for ignoring alpha component when editing a color
+	GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSY,
+	GODOT_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS,
+	GODOT_PROPERTY_HINT_OBJECT_ID,
+	GODOT_PROPERTY_HINT_TYPE_STRING, ///< a type string, the hint is the base type to choose
+	GODOT_PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE, ///< so something else can provide this (used in scripts)
+	GODOT_PROPERTY_HINT_METHOD_OF_VARIANT_TYPE, ///< a method of a type
+	GODOT_PROPERTY_HINT_METHOD_OF_BASE_TYPE, ///< a method of a base type
+	GODOT_PROPERTY_HINT_METHOD_OF_INSTANCE, ///< a method of an instance
+	GODOT_PROPERTY_HINT_METHOD_OF_SCRIPT, ///< a method of a script & base
+	GODOT_PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE, ///< a property of a type
+	GODOT_PROPERTY_HINT_PROPERTY_OF_BASE_TYPE, ///< a property of a base type
+	GODOT_PROPERTY_HINT_PROPERTY_OF_INSTANCE, ///< a property of an instance
+	GODOT_PROPERTY_HINT_PROPERTY_OF_SCRIPT, ///< a property of a script & base
+	GODOT_PROPERTY_HINT_MAX,
+} godot_property_hint;
+
+typedef enum {
+
+	GODOT_PROPERTY_USAGE_STORAGE = 1,
+	GODOT_PROPERTY_USAGE_EDITOR = 2,
+	GODOT_PROPERTY_USAGE_NETWORK = 4,
+	GODOT_PROPERTY_USAGE_EDITOR_HELPER = 8,
+	GODOT_PROPERTY_USAGE_CHECKABLE = 16, //used for editing global variables
+	GODOT_PROPERTY_USAGE_CHECKED = 32, //used for editing global variables
+	GODOT_PROPERTY_USAGE_INTERNATIONALIZED = 64, //hint for internationalized strings
+	GODOT_PROPERTY_USAGE_GROUP = 128, //used for grouping props in the editor
+	GODOT_PROPERTY_USAGE_CATEGORY = 256,
+	GODOT_PROPERTY_USAGE_STORE_IF_NONZERO = 512, //only store if nonzero
+	GODOT_PROPERTY_USAGE_STORE_IF_NONONE = 1024, //only store if false
+	GODOT_PROPERTY_USAGE_NO_INSTANCE_STATE = 2048,
+	GODOT_PROPERTY_USAGE_RESTART_IF_CHANGED = 4096,
+	GODOT_PROPERTY_USAGE_SCRIPT_VARIABLE = 8192,
+	GODOT_PROPERTY_USAGE_STORE_IF_NULL = 16384,
+	GODOT_PROPERTY_USAGE_ANIMATE_AS_TRIGGER = 32768,
+	GODOT_PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED = 65536,
+
+	GODOT_PROPERTY_USAGE_DEFAULT = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_EDITOR | GODOT_PROPERTY_USAGE_NETWORK,
+	GODOT_PROPERTY_USAGE_DEFAULT_INTL = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_EDITOR | GODOT_PROPERTY_USAGE_NETWORK | GODOT_PROPERTY_USAGE_INTERNATIONALIZED,
+	GODOT_PROPERTY_USAGE_NOEDITOR = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_NETWORK,
+} godot_property_usage_flags;
+
+typedef struct {
+	godot_method_rpc_mode rset_type;
+
+	godot_int type;
+	godot_property_hint hint;
+	godot_string hint_string;
+	godot_property_usage_flags usage;
+	godot_variant default_value;
+} godot_property_attributes;
+
+typedef struct {
+	// instance pointer, method_data - return user data
+	GDCALLINGCONV void *(*create_func)(godot_object *, void *);
+	void *method_data;
+	GDCALLINGCONV void (*free_func)(void *);
+} godot_instance_create_func;
+
+typedef struct {
+	// instance pointer, method data, user data
+	GDCALLINGCONV void (*destroy_func)(godot_object *, void *, void *);
+	void *method_data;
+	GDCALLINGCONV void (*free_func)(void *);
+} godot_instance_destroy_func;
+
+void GDAPI godot_nativescript_register_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func);
+
+void GDAPI godot_nativescript_register_tool_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func);
+
+typedef struct {
+	godot_method_rpc_mode rpc_type;
+} godot_method_attributes;
+
+typedef struct {
+	// instance pointer, method data, user data, num args, args - return result as varaint
+	GDCALLINGCONV godot_variant (*method)(godot_object *, void *, void *, int, godot_variant **);
+	void *method_data;
+	GDCALLINGCONV void (*free_func)(void *);
+} godot_instance_method;
+
+void GDAPI godot_nativescript_register_method(void *p_gdnative_handle, const char *p_name, const char *p_function_name, godot_method_attributes p_attr, godot_instance_method p_method);
+
+typedef struct {
+	// instance pointer, method data, user data, value
+	GDCALLINGCONV void (*set_func)(godot_object *, void *, void *, godot_variant *);
+	void *method_data;
+	GDCALLINGCONV void (*free_func)(void *);
+} godot_property_set_func;
+
+typedef struct {
+	// instance pointer, method data, user data, value
+	GDCALLINGCONV godot_variant (*get_func)(godot_object *, void *, void *);
+	void *method_data;
+	GDCALLINGCONV void (*free_func)(void *);
+} godot_property_get_func;
+
+void GDAPI godot_nativescript_register_property(void *p_gdnative_handle, const char *p_name, const char *p_path, godot_property_attributes *p_attr, godot_property_set_func p_set_func, godot_property_get_func p_get_func);
+
+typedef struct {
+	godot_string name;
+	godot_int type;
+	godot_property_hint hint;
+	godot_string hint_string;
+	godot_property_usage_flags usage;
+	godot_variant default_value;
+} godot_signal_argument;
+
+typedef struct {
+	godot_string name;
+	int num_args;
+	godot_signal_argument *args;
+	int num_default_args;
+	godot_variant *default_args;
+} godot_signal;
+
+void GDAPI godot_nativescript_register_signal(void *p_gdnative_handle, const char *p_name, const godot_signal *p_signal);
+
+void GDAPI *godot_nativescript_get_userdata(godot_object *p_instance);
+
+/*
+ *
+ *
+ * NativeScript 1.1
+ *
+ *
+ */
+
+// method registering with argument names
+
+typedef struct {
+	godot_string name;
+
+	godot_variant_type type;
+	godot_property_hint hint;
+	godot_string hint_string;
+} godot_method_arg;
+
+void GDAPI godot_nativescript_set_method_argument_information(void *p_gdnative_handle, const char *p_name, const char *p_function_name, int p_num_args, const godot_method_arg *p_args);
+
+// documentation
+
+void GDAPI godot_nativescript_set_class_documentation(void *p_gdnative_handle, const char *p_name, godot_string p_documentation);
+void GDAPI godot_nativescript_set_method_documentation(void *p_gdnative_handle, const char *p_name, const char *p_function_name, godot_string p_documentation);
+void GDAPI godot_nativescript_set_property_documentation(void *p_gdnative_handle, const char *p_name, const char *p_path, godot_string p_documentation);
+void GDAPI godot_nativescript_set_signal_documentation(void *p_gdnative_handle, const char *p_name, const char *p_signal_name, godot_string p_documentation);
+
+// type tag API
+
+void GDAPI godot_nativescript_set_global_type_tag(int p_idx, const char *p_name, const void *p_type_tag);
+const void GDAPI *godot_nativescript_get_global_type_tag(int p_idx, const char *p_name);
+
+void GDAPI godot_nativescript_set_type_tag(void *p_gdnative_handle, const char *p_name, const void *p_type_tag);
+const void GDAPI *godot_nativescript_get_type_tag(const godot_object *p_object);
+
+// instance binding API
+
+typedef struct {
+	GDCALLINGCONV void *(*alloc_instance_binding_data)(void *, const void *, godot_object *);
+	GDCALLINGCONV void (*free_instance_binding_data)(void *, void *);
+	GDCALLINGCONV void (*refcount_incremented_instance_binding)(void *, godot_object *);
+	GDCALLINGCONV bool (*refcount_decremented_instance_binding)(void *, godot_object *);
+	void *data;
+	GDCALLINGCONV void (*free_func)(void *);
+} godot_instance_binding_functions;
+
+int GDAPI godot_nativescript_register_instance_binding_data_functions(godot_instance_binding_functions p_binding_functions);
+void GDAPI godot_nativescript_unregister_instance_binding_data_functions(int p_idx);
+
+void GDAPI *godot_nativescript_get_instance_binding_data(int p_idx, godot_object *p_object);
+
+void GDAPI godot_nativescript_profiling_add_data(const char *p_signature, uint64_t p_time);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/godot_headers/net/godot_net.h b/godot_headers/net/godot_net.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/net/godot_net.h
@@ -0,0 +1,118 @@
+/*************************************************************************/
+/*  godot_net.h                                                          */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_NATIVENET_H
+#define GODOT_NATIVENET_H
+
+#include <gdnative/gdnative.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// For future versions of the API we should only add new functions at the end of the structure and use the
+// version info to detect whether a call is available
+
+// Use these to populate version in your plugin
+#define GODOT_NET_API_MAJOR 3
+#define GODOT_NET_API_MINOR 1
+
+typedef struct {
+
+	godot_gdnative_api_version version; /* version of our API */
+	godot_object *data; /* User reference */
+
+	/* This is StreamPeer */
+	godot_error (*get_data)(void *user, uint8_t *p_buffer, int p_bytes);
+	godot_error (*get_partial_data)(void *user, uint8_t *p_buffer, int p_bytes, int &r_received);
+	godot_error (*put_data)(void *user, const uint8_t *p_data, int p_bytes);
+	godot_error (*put_partial_data)(void *user, const uint8_t *p_data, int p_bytes, int &r_sent);
+
+	int (*get_available_bytes)(const void *user);
+
+	void *next; /* For extension? */
+} godot_net_stream_peer;
+
+/* Binds a StreamPeerGDNative to the provided interface */
+void godot_net_bind_stream_peer(godot_object *p_obj, godot_net_stream_peer *p_interface);
+
+typedef struct {
+	godot_gdnative_api_version version; /* version of our API */
+
+	godot_object *data; /* User reference */
+
+	/* This is PacketPeer */
+	godot_error (*get_packet)(void *, const uint8_t **, int &);
+	godot_error (*put_packet)(void *, const uint8_t *, int);
+	godot_int (*get_available_packet_count)(const void *);
+	godot_int (*get_max_packet_size)(const void *);
+
+	void *next; /* For extension? */
+} godot_net_packet_peer;
+
+/* Binds a PacketPeerGDNative to the provided interface */
+void GDAPI godot_net_bind_packet_peer(godot_object *p_obj, const godot_net_packet_peer *);
+
+typedef struct {
+	godot_gdnative_api_version version; /* version of our API */
+
+	godot_object *data; /* User reference */
+
+	/* This is PacketPeer */
+	godot_error (*get_packet)(void *, const uint8_t **, int &);
+	godot_error (*put_packet)(void *, const uint8_t *, int);
+	godot_int (*get_available_packet_count)(const void *);
+	godot_int (*get_max_packet_size)(const void *);
+
+	/* This is NetworkedMultiplayerPeer */
+	void (*set_transfer_mode)(void *, godot_int);
+	godot_int (*get_transfer_mode)(const void *);
+	// 0 = broadcast, 1 = server, <0 = all but abs(value)
+	void (*set_target_peer)(void *, godot_int);
+	godot_int (*get_packet_peer)(const void *);
+	godot_bool (*is_server)(const void *);
+	void (*poll)(void *);
+	// Must be > 0, 1 is for server
+	int32_t (*get_unique_id)(const void *);
+	void (*set_refuse_new_connections)(void *, godot_bool);
+	godot_bool (*is_refusing_new_connections)(const void *);
+	godot_int (*get_connection_status)(const void *);
+
+	void *next; /* For extension? Or maybe not... */
+} godot_net_multiplayer_peer;
+
+/* Binds a MultiplayerPeerGDNative to the provided interface */
+void GDAPI godot_net_bind_multiplayer_peer(godot_object *p_obj, const godot_net_multiplayer_peer *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GODOT_NATIVENET_H */
diff --git a/godot_headers/pluginscript/godot_pluginscript.h b/godot_headers/pluginscript/godot_pluginscript.h
new file mode 100644
--- /dev/null
+++ b/godot_headers/pluginscript/godot_pluginscript.h
@@ -0,0 +1,172 @@
+/*************************************************************************/
+/*  godot_pluginscript.h                                                 */
+/*************************************************************************/
+/*                       This file is part of:                           */
+/*                           GODOT ENGINE                                */
+/*                      https://godotengine.org                          */
+/*************************************************************************/
+/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.                 */
+/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)    */
+/*                                                                       */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the       */
+/* "Software"), to deal in the Software without restriction, including   */
+/* without limitation the rights to use, copy, modify, merge, publish,   */
+/* distribute, sublicense, and/or sell copies of the Software, and to    */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions:                                             */
+/*                                                                       */
+/* The above copyright notice and this permission notice shall be        */
+/* included in all copies or substantial portions of the Software.       */
+/*                                                                       */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
+/*************************************************************************/
+
+#ifndef GODOT_PLUGINSCRIPT_H
+#define GODOT_PLUGINSCRIPT_H
+
+#include <gdnative/gdnative.h>
+#include <nativescript/godot_nativescript.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void godot_pluginscript_instance_data;
+typedef void godot_pluginscript_script_data;
+typedef void godot_pluginscript_language_data;
+
+// --- Instance ---
+
+// TODO: use godot_string_name for faster lookup ?
+typedef struct {
+	godot_pluginscript_instance_data *(*init)(godot_pluginscript_script_data *p_data, godot_object *p_owner);
+	void (*finish)(godot_pluginscript_instance_data *p_data);
+
+	godot_bool (*set_prop)(godot_pluginscript_instance_data *p_data, const godot_string *p_name, const godot_variant *p_value);
+	godot_bool (*get_prop)(godot_pluginscript_instance_data *p_data, const godot_string *p_name, godot_variant *r_ret);
+
+	godot_variant (*call_method)(godot_pluginscript_instance_data *p_data,
+			const godot_string_name *p_method, const godot_variant **p_args,
+			int p_argcount, godot_variant_call_error *r_error);
+
+	void (*notification)(godot_pluginscript_instance_data *p_data, int p_notification);
+	// TODO: could this rpc mode stuff be moved to the godot_pluginscript_script_manifest ?
+	godot_method_rpc_mode (*get_rpc_mode)(godot_pluginscript_instance_data *p_data, const godot_string *p_method);
+	godot_method_rpc_mode (*get_rset_mode)(godot_pluginscript_instance_data *p_data, const godot_string *p_variable);
+
+	//this is used by script languages that keep a reference counter of their own
+	//you can make make Ref<> not die when it reaches zero, so deleting the reference
+	//depends entirely from the script.
+	// Note: You can set those function pointer to NULL if not needed.
+	void (*refcount_incremented)(godot_pluginscript_instance_data *p_data);
+	bool (*refcount_decremented)(godot_pluginscript_instance_data *p_data); // return true if it can die
+} godot_pluginscript_instance_desc;
+
+// --- Script ---
+
+typedef struct {
+	godot_pluginscript_script_data *data;
+	godot_string_name name;
+	godot_bool is_tool;
+	godot_string_name base;
+
+	// Member lines format: {<string>: <int>}
+	godot_dictionary member_lines;
+	// Method info dictionary format
+	// {
+	//  name: <string>
+	//  args: [<dict:property>]
+	//  default_args: [<variant>]
+	//  return: <dict:property>
+	//  flags: <int>
+	//  rpc_mode: <int:godot_method_rpc_mode>
+	// }
+	godot_array methods;
+	// Same format than for methods
+	godot_array signals;
+	// Property info dictionary format
+	// {
+	//  name: <string>
+	//  type: <int:godot_variant_type>
+	//  hint: <int:godot_property_hint>
+	//  hint_string: <string>
+	//  usage: <int:godot_property_usage_flags>
+	//  default_value: <variant>
+	//  rset_mode: <int:godot_method_rpc_mode>
+	// }
+	godot_array properties;
+} godot_pluginscript_script_manifest;
+
+typedef struct {
+	godot_pluginscript_script_manifest (*init)(godot_pluginscript_language_data *p_data, const godot_string *p_path, const godot_string *p_source, godot_error *r_error);
+	void (*finish)(godot_pluginscript_script_data *p_data);
+	godot_pluginscript_instance_desc instance_desc;
+} godot_pluginscript_script_desc;
+
+// --- Language ---
+
+typedef struct {
+	godot_string_name signature;
+	godot_int call_count;
+	godot_int total_time; // In microseconds
+	godot_int self_time; // In microseconds
+} godot_pluginscript_profiling_data;
+
+typedef struct {
+	const char *name;
+	const char *type;
+	const char *extension;
+	const char **recognized_extensions; // NULL terminated array
+	godot_pluginscript_language_data *(*init)();
+	void (*finish)(godot_pluginscript_language_data *p_data);
+	const char **reserved_words; // NULL terminated array
+	const char **comment_delimiters; // NULL terminated array
+	const char **string_delimiters; // NULL terminated array
+	godot_bool has_named_classes;
+	godot_bool supports_builtin_mode;
+
+	godot_string (*get_template_source_code)(godot_pluginscript_language_data *p_data, const godot_string *p_class_name, const godot_string *p_base_class_name);
+	godot_bool (*validate)(godot_pluginscript_language_data *p_data, const godot_string *p_script, int *r_line_error, int *r_col_error, godot_string *r_test_error, const godot_string *p_path, godot_pool_string_array *r_functions);
+	int (*find_function)(godot_pluginscript_language_data *p_data, const godot_string *p_function, const godot_string *p_code); // Can be NULL
+	godot_string (*make_function)(godot_pluginscript_language_data *p_data, const godot_string *p_class, const godot_string *p_name, const godot_pool_string_array *p_args);
+	godot_error (*complete_code)(godot_pluginscript_language_data *p_data, const godot_string *p_code, const godot_string *p_base_path, godot_object *p_owner, godot_array *r_options, godot_bool *r_force, godot_string *r_call_hint);
+	void (*auto_indent_code)(godot_pluginscript_language_data *p_data, godot_string *p_code, int p_from_line, int p_to_line);
+
+	void (*add_global_constant)(godot_pluginscript_language_data *p_data, const godot_string *p_variable, const godot_variant *p_value);
+	godot_string (*debug_get_error)(godot_pluginscript_language_data *p_data);
+	int (*debug_get_stack_level_count)(godot_pluginscript_language_data *p_data);
+	int (*debug_get_stack_level_line)(godot_pluginscript_language_data *p_data, int p_level);
+	godot_string (*debug_get_stack_level_function)(godot_pluginscript_language_data *p_data, int p_level);
+	godot_string (*debug_get_stack_level_source)(godot_pluginscript_language_data *p_data, int p_level);
+	void (*debug_get_stack_level_locals)(godot_pluginscript_language_data *p_data, int p_level, godot_pool_string_array *p_locals, godot_array *p_values, int p_max_subitems, int p_max_depth);
+	void (*debug_get_stack_level_members)(godot_pluginscript_language_data *p_data, int p_level, godot_pool_string_array *p_members, godot_array *p_values, int p_max_subitems, int p_max_depth);
+	void (*debug_get_globals)(godot_pluginscript_language_data *p_data, godot_pool_string_array *p_locals, godot_array *p_values, int p_max_subitems, int p_max_depth);
+	godot_string (*debug_parse_stack_level_expression)(godot_pluginscript_language_data *p_data, int p_level, const godot_string *p_expression, int p_max_subitems, int p_max_depth);
+
+	// TODO: could this stuff be moved to the godot_pluginscript_language_desc ?
+	void (*get_public_functions)(godot_pluginscript_language_data *p_data, godot_array *r_functions);
+	void (*get_public_constants)(godot_pluginscript_language_data *p_data, godot_dictionary *r_constants);
+
+	void (*profiling_start)(godot_pluginscript_language_data *p_data);
+	void (*profiling_stop)(godot_pluginscript_language_data *p_data);
+	int (*profiling_get_accumulated_data)(godot_pluginscript_language_data *p_data, godot_pluginscript_profiling_data *r_info, int p_info_max);
+	int (*profiling_get_frame_data)(godot_pluginscript_language_data *p_data, godot_pluginscript_profiling_data *r_info, int p_info_max);
+	void (*profiling_frame)(godot_pluginscript_language_data *p_data);
+
+	godot_pluginscript_script_desc script_desc;
+} godot_pluginscript_language_desc;
+
+void GDAPI godot_pluginscript_register_language(const godot_pluginscript_language_desc *language_desc);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // GODOT_PLUGINSCRIPT_H
diff --git a/src-generate/Generate.hs b/src-generate/Generate.hs
new file mode 100644
--- /dev/null
+++ b/src-generate/Generate.hs
@@ -0,0 +1,489 @@
+{-# LANGUAGE TemplateHaskell, OverloadedStrings, ViewPatterns, DeriveFunctor, TypeApplications #-}
+module Generate where
+
+import Control.Lens
+import Control.Monad
+
+import Data.Coerce
+import qualified Data.HashMap.Lazy as HM
+import Data.Map (Map)
+import qualified Data.Map as M
+import Data.Monoid
+
+import qualified Data.Vector as V
+import qualified Data.Text as T
+
+import Text.Casing
+
+import Foreign
+import Foreign.C
+
+import Language.Haskell.TH
+import Language.Haskell.TH.Syntax
+
+import Text.PrettyPrint.ANSI.Leijen ((<+>))
+import qualified Text.PrettyPrint.ANSI.Leijen as PP
+
+import qualified Spec as S 
+
+import qualified Types as C
+
+-- a simple type corresponds to a 1:1 haskell type
+-- a c shim type can't be represented by the haskell FFI, so it needs to be shimmed
+-- an opaque type needs to be withForeignPtr'd (modulo newtype)
+data TypeResult a
+  = SimpleType a
+  | EnumType a
+  | OpaqueType Bool a -- Bool == needs C shim
+  | StorableType Bool a
+  deriving (Show, Eq, Ord, Functor)
+
+isCShimType :: TypeResult a -> Bool
+isCShimType (OpaqueType b _) = b
+isCShimType (StorableType b _) = b
+isCShimType _ = False
+
+makePrisms ''TypeResult
+
+unTypeResult :: TypeResult a -> a
+unTypeResult (SimpleType a) = a
+unTypeResult (EnumType a) = a
+unTypeResult (OpaqueType _ a) = a
+unTypeResult (StorableType _ a) = a
+
+fromThName :: Name -> Type
+fromThName = ConT
+
+-- from inline-c
+baseTypesTable :: Map C.TypeSpecifier Type
+baseTypesTable = M.fromList
+  [ (C.Void, TupleT 0)
+  -- Types from Foreign.C.Types in the order in which they are presented there,
+  -- along with its documentation's section headers.
+  -- Integral types
+  , (C.Char Nothing, fromThName ''CChar)
+  , (C.Char (Just C.Signed), fromThName ''CSChar)
+  , (C.Char (Just C.Unsigned), fromThName ''CUChar)
+  , (C.Short C.Signed, fromThName ''CShort)
+  , (C.Short C.Unsigned, fromThName ''CUShort)
+  , (C.Int C.Signed, fromThName ''CInt)
+  , (C.Int C.Unsigned, fromThName ''CUInt)
+  , (C.Long C.Signed, fromThName ''CLong)
+  , (C.Long C.Unsigned, fromThName ''CULong)
+  , (C.TypeName "ptrdiff_t", fromThName ''CPtrdiff)
+  , (C.TypeName "size_t", fromThName ''CSize)
+  , (C.TypeName "wchar_t", fromThName ''CWchar)
+  , (C.TypeName "sig_atomic_t", fromThName ''CSigAtomic)
+  , (C.LLong C.Signed, fromThName ''CLLong)
+  , (C.LLong C.Unsigned, fromThName ''CULLong)
+  , (C.TypeName "intptr_t", fromThName ''CIntPtr)
+  , (C.TypeName "uintptr_t", fromThName ''CUIntPtr)
+  , (C.TypeName "intmax_t", fromThName ''CIntMax)
+  , (C.TypeName "uintmax_t", fromThName ''CUIntMax)
+  -- Numeric types
+  , (C.TypeName "clock_t", fromThName ''CClock)
+  , (C.TypeName "time_t", fromThName ''CTime)
+  , (C.TypeName "useconds_t", fromThName ''CUSeconds)
+  , (C.TypeName "suseconds_t", fromThName ''CSUSeconds)
+  -- Floating types
+  , (C.Float, fromThName ''CFloat)
+  , (C.Double, fromThName ''CDouble)
+  -- Other types
+  , (C.TypeName "FILE", fromThName ''CFile)
+  , (C.TypeName "fpos_t", fromThName ''CFpos)
+  , (C.TypeName "jmp_buf", fromThName ''CJmpBuf)
+  -- Types from stdint.h that can be statically mapped to their Haskell
+  -- equivalents. Excludes int_fast*_t and int_least*_t and the corresponding
+  -- unsigned types, since their sizes are platform-specific.
+  , (C.TypeName "int8_t", fromThName ''Int8)
+  , (C.TypeName "int16_t", fromThName ''Int16)
+  , (C.TypeName "int32_t", fromThName ''Int32)
+  , (C.TypeName "int64_t", fromThName ''Int64)
+  , (C.TypeName "uint8_t", fromThName ''Word8)
+  , (C.TypeName "uint16_t", fromThName ''Word16)
+  , (C.TypeName "uint32_t", fromThName ''Word32)
+  , (C.TypeName "uint64_t", fromThName ''Word64)
+  , (C.TypeName "godot_real", fromThName ''CFloat)
+  , (C.TypeName "godot_int", fromThName ''CInt)
+  , (C.TypeName "godot_bool", fromThName ''CBool)
+  , (C.TypeName "godot_class_constructor", ConT $ mkName "GodotClassConstructor")
+  , (C.TypeName "native_call_cb", ConT $ mkName "NativeCallCb")
+  , (C.TypeName "bool", fromThName ''CInt)
+  ]
+
+godotOpaqueStructs :: [C.Identifier]
+godotOpaqueStructs =
+  [ "godot_aabb"
+  , "godot_array"
+  , "godot_basis"
+  , "godot_char_string"
+  , "godot_color"
+  , "godot_dictionary"
+  , "godot_method_bind"
+  , "godot_node_path"
+  , "godot_plane"
+  , "godot_pool_array_read_access"
+  , "godot_pool_array_write_access"
+  , "godot_quat"
+  , "godot_rect2"
+  , "godot_rid"
+  , "godot_string"
+  , "godot_string_name"
+  , "godot_transform"
+  , "godot_transform2d"
+  , "godot_variant"
+  , "godot_vector2"
+  , "godot_vector3"
+  ] ++ concatMap (\(C.Identifier str) ->
+                    map (\suf -> C.Identifier $ str ++ suf) ["", "_read_access", "_write_access"])
+  [  "godot_pool_byte_array"
+  , "godot_pool_color_array"
+  , "godot_pool_int_array"
+  , "godot_pool_real_array"
+  , "godot_pool_string_array"
+  , "godot_pool_vector2_array"
+  , "godot_pool_vector3_array"
+  ]
+
+-- structs, but not opaque structs
+godotStructs :: [C.Identifier]
+godotStructs =
+  [ "godot_instance_create_func"
+  , "godot_instance_destroy_func"
+  , "godot_instance_method"
+  , "godot_method_attributes"
+  , "godot_property_get_func"
+  , "godot_property_set_func"
+  , "godot_property_attributes"
+  , "godot_signal"
+  , "godot_arvr_interface_gdnative"
+  , "godot_variant_call_error"
+  , "godot_pluginscript_language_desc"
+  , "godot_method_arg"
+  , "godot_instance_binding_functions"
+  ]
+  
+godotEnums :: [C.Identifier]
+godotEnums =
+  [ "godot_error"
+  , "godot_variant_type"
+  , "godot_variant_call_error_error"
+  , "godot_vector3_axis"
+  , "godot_variant_operator" ]
+
+
+-- pipeline:
+-- - shim function, converting a S.GdnativeApiEntry into a foreign decl name, foreign decl, and maybe a piece of C code + updated types
+-- - marshal it
+-- - call it
+
+
+createFuncTyIO :: (Functor t, Foldable t) => Type -> t Type -> Type
+createFuncTyIO ret args = foldr AppT (AppT (ConT ''IO) ret) $ fmap (AppT ArrowT) args
+
+shimFunction :: S.GdnativeApiEntry -> ( Name -- function name
+                                      , Name -- foreign decl name
+                                      , Dec -- foreign decl
+                                      , Maybe PP.Doc -- shim C code
+                                      , [(TypeResult Type, Bool)] -- foreign argument types + whether to malloc it
+                                      , TypeResult Type ) -- foreign return type 
+shimFunction entry =
+  ( fname
+  , foreignName
+  , fdecl
+  , cShim
+  , newArgs
+  , newRetTy )
+
+  where
+    fname = mkName . T.unpack $ S.name entry
+    foreignName = mkName . T.unpack $ S.name entry `T.snoc` '_'
+
+    retTy = resolveType $ S.return_type entry
+    args = (resolveType.fst) <$> S.arguments entry
+    isMallocArg arg = T.isPrefixOf "r_" arg 
+      || S.name entry == "godot_variant_new_bool" && arg == "p_v"
+      || S.name entry == "godot_method_bind_call" && arg == "p_call_error"
+    mallocFlags = V.toList $ (isMallocArg.snd) <$> S.arguments entry
+
+    -- now we need to transform the args post-shim:
+    -- we only need to shim opaque structs, so those are easy
+    -- for the return type we append the old return value with malloc=>True, and set return type ()
+
+    flaggedArgs = zip (V.toList args) mallocFlags
+    (newArgs, newRetTy) | shimRet = (flaggedArgs ++ [(retTy, True)], SimpleType (TupleT 0))
+                        | otherwise = (flaggedArgs, retTy)
+
+    foreignTypeResult (EnumType _) = ConT ''CInt
+    foreignTypeResult ty = unTypeResult ty
+    
+    foreignRetTy = foreignTypeResult newRetTy
+    foreignArgs = (foreignTypeResult.fst) <$> newArgs
+    
+    
+    cName = if needsCShim then "hs_shim_" ++ nameBase fname else "dynamic"
+    foreignType = createFuncTyIO foreignRetTy foreignArgs
+    --TODO make the FunPtr correctly typed?
+    fdecl = ForeignD $ ImportF CCall Safe cName foreignName $
+                     AppT (AppT ArrowT (AppT (ConT ''FunPtr) foreignType)) foreignType -- FunPtr ty -> ty
+
+    shimArgs = V.toList $ fmap isCShimType args
+    shimRet = isCShimType retTy
+    needsCShim = shimRet || or shimArgs
+    
+    -- construct the C shim. we're lazy here and just indicate whether we want to shim some argument or return type or not
+    -- no direct AST (todo?)
+    -- shimArgs = original function params length!!
+    cShim
+      | needsCShim = Just $ PP.vsep
+        [ newRetDecl <+> PP.text cName <+> PP.tupled newCArgs <+> "{" -- new declaration
+        , PP.indent 2 $ retWay <+> "func" <+> PP.tupled newInvokeParams <> ";"
+        , "}"]
+      | otherwise = Nothing
+      where
+        nats = [0..] :: [Int]
+        oldRetTy = PP.pretty $ S.return_type entry
+        oldArgTys = map (PP.pretty . fst) $ V.toList $ S.arguments entry
+        
+        newRetDecl = if shimRet then "void" else oldRetTy
+        
+        funPtrDecl = oldRetTy <+> "(*func)" <> PP.tupled oldArgTys
+
+        shimTy needsShim ty = if needsShim then ty <> "*" else ty
+        
+        newCArgs = [funPtrDecl] ++ -- fun ptr is always first
+                  zipWith3 (\idx needsShim ty -> shimTy needsShim ty <+> "x" <> PP.pretty idx)
+                  nats shimArgs oldArgTys ++
+                  [shimTy True oldRetTy <+> "ret" | shimRet] -- apppend ret shim if needed
+        
+
+        retWay = if shimRet then "*ret =" else "return"
+
+        shimParam needsShim = if needsShim then "*" else ""
+        newInvokeParams = zipWith (\idx needsShim -> shimParam needsShim <> "x" <> PP.pretty idx) nats shimArgs
+
+-- this is the core C type -> Foreign mapping. we also encode the type of marshaller to use
+resolveType :: C.Type -> TypeResult Type
+resolveType (C.TypeSpecifier _ (lookupBase -> Just ty)) = SimpleType $ ty
+resolveType (C.TypeSpecifier _ (C.TypeName ident)) = con $ ConT $ fromCIdent ident
+  where
+    con | isOpaqueStruct ident = OpaqueType True . AppT (ConT ''Ptr) -- we need to shim this so types match
+        | isStruct ident = StorableType True . AppT (ConT ''Ptr)
+        | isEnumType ident = EnumType
+        | otherwise = error $ "Unknown type " ++ show ident
+resolveType (C.Ptr _ (C.TypeSpecifier _ (lookupBase -> Just ty)))
+  = SimpleType $ AppT (ConT ''Ptr) ty
+resolveType (C.Ptr _ (C.TypeSpecifier _ (C.TypeName "godot_object")))
+  = SimpleType $ ConT $ mkName "GodotObject"
+resolveType (C.Ptr _ (C.TypeSpecifier _ (C.TypeName ident)))
+  = con  . AppT (ConT ''Ptr) . ConT $ fromCIdent ident
+  where
+    con | isOpaqueStruct ident = OpaqueType False 
+        | isStruct ident = StorableType False
+        | isEnumType ident = EnumType 
+        | otherwise = error $ "Unknown type " ++ show ident
+resolveType (C.Ptr _ ty) = SimpleType $ AppT (ConT ''Ptr) (unTypeResult $ resolveType ty)
+resolveType x = error $ "Failed to resolve type " ++ show x
+
+isStruct, isEnumType, isOpaqueStruct :: C.Identifier -> Bool
+isOpaqueStruct ident = ident `elem` godotOpaqueStructs
+isStruct ident = ident `elem` godotStructs
+isEnumType ident = ident `elem` godotEnums
+
+fromCIdent :: C.Identifier -> Name
+fromCIdent = mkName . pascal . C.unIdentifier
+
+lookupBase :: C.TypeSpecifier -> Maybe Type
+lookupBase = flip M.lookup baseTypesTable
+
+unPtrT :: Type -> Type
+unPtrT (AppT (ConT ptr) ty) | ptr == ''Ptr = ty
+unPtrT _ = error "Used unPtrT on a non-Ptr type"
+
+-- tuple:
+-- - Either (Name -> Q Exp) (Q Exp) -- left => in marshaller needs argument, right => no argument (e.g. malloc)
+-- - Type => hs type
+-- - Name -> Q Exp => out marshaller
+-- an in argument needs an in marshaller
+-- an out argument needs both
+-- a return value needs an out marshaller
+marshalArg :: (TypeResult Type, Bool)
+           -> Q ( Either (Name -> Q Exp) (Q Exp)
+                , Type
+                , Name -> Q Exp )
+marshalArg (SimpleType ty, isOutPtr)
+  | isOutPtr = pure ( Right [|alloca|]
+                    , unPtrT ty
+                    , \n -> [|peek $(varE n)|])
+  | otherwise = pure ( Left (\n -> [| ($ $(varE n)) |])
+                       -- this syntax sucks a bit, but it's basically a ($ n) section
+                     , ty
+                     , \n -> [|return $(varE n)|] )
+marshalArg (EnumType ty, isOutPtr)
+  | isOutPtr = pure ( Right [|alloca|]
+                    , unPtrT ty
+                    , \n -> [|fmap (toEnum . fromIntegral) (peek $(varE n))|] )
+  | otherwise = pure ( Left (\n -> [|($ fromIntegral (fromEnum $(varE n)))|])
+                     , ty
+                     , \n -> [|return . toEnum $ fromIntegral $(varE n)|] )
+
+
+--TODO: rewrite this to use mallocForeignPtrBytes.
+marshalArg (OpaqueType _ ty, isOutPtr)
+  | isOutPtr = pure ( Right [| (mallocBytes (opaqueSizeOf @($(pure $ unPtrT ty))) >>=) |]
+              , unPtrT ty
+              , \n -> [|coerce <$> newForeignPtr finalizerFree $(varE n)|] )
+   | otherwise = pure ( Left (\n -> [| withForeignPtr (coerce $(varE n)) |])
+                , unPtrT ty
+                , \n -> [|coerce <$> newForeignPtr_ $(varE n)|] )
+
+marshalArg (StorableType _ ty, isOutPtr)
+  | isOutPtr = pure ( Right [|alloca|]
+                    , unPtrT ty
+                    , \n -> [|peek $(varE n)|] )
+  | otherwise = pure ( Left (\n -> [| with $(varE n) |] )
+                     , unPtrT ty
+                     , \n -> [|peek $(varE n)|] ) -- not sure about this
+      
+
+marshalRet :: TypeResult Type -> Q ( Type -- hs ret ty
+                                   , Maybe (Name -> Q Exp) ) -- out marshaller
+marshalRet (OpaqueType True _) = error "can't marshal unshimmed opaque structs"
+marshalRet (StorableType True _) = error "can't marshal unshimmed structs"
+marshalRet r = marshalArg (r, False) >>=
+  \(_, hty, outm) -> case hty of
+    TupleT 0 -> pure (hty, Nothing)
+    _ -> pure (hty, Just outm)
+
+
+-- constructs the haskell and C functions out of the API name, index and entry
+-- I was considering doing C via AST, but just going to use PP.Doc.
+constructFunction :: Bool -> Name -> Int -> S.GdnativeApiEntry -> Q ([Dec], Maybe PP.Doc)
+constructFunction isCore tyname idx entry = do
+  marshalledArgs <- mapM marshalArg foreignArgs
+  let (hsOuts, hsArgs) = partitionArgs marshalledArgs
+  (retMarshalTy, retOutMarshal) <- marshalRet foreignRetTy
+
+  let hsRets = case retMarshalTy of
+        TupleT 0 -> hsOuts ^.. folded._2
+        _ -> retMarshalTy : (hsOuts ^.. folded._2)
+  let hsTy = createFuncTyIO (foldl AppT (TupleT (length hsRets)) hsRets) (hsArgs ^.. folded._2)
+
+  sig <- sigD fname (pure hsTy) -- the top-level sig
+
+  (argInMarshallers, argNames, argOutMarshallers) <- getMarshallers marshalledArgs
+
+  nApi <- newName "api"
+  nPtr <- newName "ptr"
+
+  -- peekElemOff api idx
+  let tyApiName = mkName . camel $ nameBase tyname
+  let apiE = LetE [ValD (ConP tyname [VarP nApi]) (NormalB $ VarE tyApiName) []] (VarE nApi)
+  let peekE = pure $ foldl AppE (VarE 'peekByteOff) [apiE, LitE (IntegerL $ fromIntegral $ sizeOf (undefined :: FunPtr a) * idx + structOffset)]
+
+  let invokeE = appE (varE foreignName) (varE nPtr)
+
+  let callE = generateCall invokeE argInMarshallers argOutMarshallers retOutMarshal
+  fundecl <- funD fname [clause (map varP argNames)
+                          (normalB $ infixE (Just peekE) (varE '(>>=)) (Just $ lamE [varP nPtr] callE)) []]
+  
+  
+  return ([fdecl, sig, fundecl], cShim)
+  -- marshalling
+  where
+    (fname, foreignName, fdecl, cShim, foreignArgs, foreignRetTy) = shimFunction entry
+
+    partitionArgs [] = ([],[])
+    partitionArgs ((inm, ty, outf) : margs)
+      = let (os, as) = partitionArgs margs
+        in case inm of
+             Left argf -> (os, (argf, ty, outf) : as)
+             Right argm -> ((argm, ty, outf) : os, as)
+
+    getMarshallers [] = return ([],[],[])
+    getMarshallers ((inm, _, outm):xs) = do
+      (argInMs, argNs, argOutMs) <- getMarshallers xs
+      case inm of
+        Left argf -> newName "x" >>= \n -> return ((argf n, False) : argInMs, n : argNs, argOutMs)
+        Right argm -> return ( (argm, True) : argInMs, argNs, outm : argOutMs)
+
+    -- TODO: evaluate these properly
+    -- HACK: 64-bit linux only
+    structOffset = if isCore
+      then 40 -- offsetof(godot_gdnative_core_api_struct,godot_color_new_rgba)
+      else 24 -- 
+      
+
+    
+-- an in marshaller has form (a -> IO b) -> IO b
+generateCall :: Q Exp -- ^ the foreign function to call
+             -> [(Q Exp, Bool)] -- ^ in marshallers (len = arguments)
+             -> [Name -> Q Exp] -- ^ out argument marshallers (len = #outputs)
+             -> Maybe (Name -> Q Exp) -- ^ return value marshaller, if non-void
+             -> Q Exp -- ^ the full callee
+generateCall = go []
+  where
+    go ns func [] outm maybeRetm = do
+      case maybeRetm of
+        -- duplication, bleh
+        Just retm -> do
+          r <- newName "r" -- return value
+          let bindCall = [ bindS (varP r) func ] -- bind the result of the call to a name
+          
+          os <- replicateM (length outm + 1) (newName "o")
+          let bindOuts = zipWith (\o f -> bindS (varP o) f) os $ zipWith ($) (retm:outm) (r:ns)
+          let retOuts = [noBindS $ appE [|return|] $ tupE (map varE os)]
+          doE $ bindCall ++ bindOuts ++ retOuts
+        Nothing -> do
+          let bindCall = [ noBindS func ]
+          os <- replicateM (length outm) (newName "o")
+          let bindOuts = zipWith (\o f -> bindS (varP o) f) os $ zipWith ($) outm ns
+          let retOuts = [noBindS $ appE [|return|] $ tupE (map varE os)]
+          doE $ bindCall ++ bindOuts ++ retOuts
+
+    go ns func ((inm, isOutArg):inms) outm maybeRetm = do
+      y <- newName "y"
+      appE inm . lamE [varP y] $ go (ns ++ [y | isOutArg]) (appE func (varE y)) inms outm maybeRetm
+
+apisToHs :: S.GdnativeApis -> Q [Dec]
+apisToHs apis = do
+  coreDecs <- apiToHs True (S.core apis) 
+  extDecs <- concat <$> mapM (apiToHs False) (V.filter (\api -> S.apiType api `notElem` excluded) $ S.extensions apis)
+  return $ coreDecs ++ extDecs
+
+  where
+    excluded = ["ANDROID"]
+
+-- bool: is core -> True
+apiToHs :: Bool -> S.GdnativeApi -> Q [Dec]
+apiToHs isCore api = do
+  nxts <- case S.apiNext api of
+    Just next -> apiToHs isCore next
+    Nothing -> return []
+  (++ nxts) <$> generateApiType
+  where
+    -- generate the
+    -- newtype: newtype Api = Api (Ptr Api)
+    -- functions:
+    -- - simple function: func :: Api -> Blah -> IO Boop, func (Api ptr) blah boop = peekByteOff ptr 0 >>= \fptr -> createFunc fptr blah boop
+    -- - c shim function: * return value: create C function with extra argument that writes result to it
+    --                    * argument: create C function that dereferences it
+    generateApiType = let apiName = mkApiName
+                          apiEntries = S.apiApi api
+                      in generateFunctions apiName apiEntries
+    maybeExt = if isCore then "" else "Ext"
+    showVer = let ver = S.apiVersion api in show (S.major ver) ++ show (S.minor ver)
+    maybeVer = if S.apiVersion api == S.Ver 1 0 || S.apiType api == "ARVR" then "" else showVer
+    mkApiName = mkName $ "GodotGdnative" ++ maybeExt ++ pascal (T.unpack $ S.apiType api) ++ maybeVer ++ "ApiStruct"
+
+    generateFunctions name entries = do
+      funcs <- imapM (constructFunction isCore name) entries
+      let hscode = concat $ funcs ^.. folded._1
+      let ccode = PP.vsep $ funcs ^.. folded._2._Just
+      addForeignSource LangC . show $ PP.vsep
+        [ "#include <gdnative_api_struct.gen.h>"
+        , ccode ]
+      return hscode
+      
+      
+
diff --git a/src-generate/Spec.hs b/src-generate/Spec.hs
new file mode 100644
--- /dev/null
+++ b/src-generate/Spec.hs
@@ -0,0 +1,63 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_GHC -Wno-orphans #-}
+module Spec where
+
+import Data.Aeson
+import Data.Aeson.TH
+import Data.Char
+import Data.Monoid
+import Data.Text (Text)
+import Data.Vector (Vector)
+import qualified Data.Vector as V
+import Data.HashMap.Strict (HashMap)
+import qualified Data.HashMap.Strict as HM
+import Data.Set (Set)
+import qualified Data.Set as S
+
+import Types
+
+-- this is incredibly ad hoc.
+instance FromJSON Type where
+  parseJSON = withText "C type" $ \str ->
+    case runCParser (const True) "" str parseType of
+      Left err -> fail $ show err
+      Right val -> return val
+
+data GdnativeApis = GdnativeApis
+  { core :: !GdnativeApi
+  , extensions :: !(Vector GdnativeApi)
+  } deriving (Show, Eq)
+
+data Ver = Ver { major :: !Int, minor :: !Int}
+  deriving (Show, Eq)
+
+data GdnativeApi = GdnativeApi
+  { apiType :: !Text
+  , apiVersion :: !Ver
+  , apiNext :: !(Maybe GdnativeApi)
+  , apiApi :: !(Vector GdnativeApiEntry)
+  } deriving (Show, Eq)
+
+data GdnativeApiEntry = GdnativeApiEntry
+  { name :: !Text
+  , return_type :: !Type
+  , arguments :: !(Vector (Type, Text))
+  } deriving (Show, Eq)
+
+deriveFromJSON defaultOptions ''Ver
+deriveFromJSON defaultOptions ''GdnativeApiEntry
+deriveFromJSON defaultOptions { fieldLabelModifier = map toLower . drop 3 } ''GdnativeApi
+deriveFromJSON defaultOptions ''GdnativeApis
+
+
+collectTypes :: GdnativeApis -> Set Type
+collectTypes apis = collectFromApi (core apis) <> mconcat (V.toList $ fmap collectFromApi $ extensions apis)
+  where
+    collectFromApi api = mconcat $ V.toList $ fmap collectFromEntry (apiApi api)
+    collectFromEntry entry = S.singleton (return_type entry) <> (S.fromList $ V.toList $ fmap fst $ arguments entry)
+
+collectNames :: GdnativeApis -> Set Text
+collectNames apis = collectFromApi (core apis) <> mconcat (V.toList $ fmap collectFromApi $ extensions apis)
+  where
+    collectFromApi api = mconcat $ V.toList $ fmap collectFromEntry (apiApi api)
+    collectFromEntry entry = S.fromList $ V.toList $ fmap snd $ arguments entry
diff --git a/src-generate/Types.hs b/src-generate/Types.hs
new file mode 100644
--- /dev/null
+++ b/src-generate/Types.hs
@@ -0,0 +1,483 @@
+{-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveFunctor #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+{-# LANGUAGE NoMonoLocalBinds #-}
+
+-- | Views of C datatypes. While "Language.C.Types.Parse" defines datatypes for
+-- representing the concrete syntax tree of C types, this module provides
+-- friendlier views of C types, by turning them into a data type matching more
+-- closely how we read and think about types, both in Haskell and in C. To
+-- appreciate the difference, look at the difference between
+-- 'P.ParameterDeclaration' and 'ParameterDeclaration'.
+--
+-- As a bonus, routines are provided for describing types in natural language
+-- (English) -- see 'describeParameterDeclaration' and 'describeType'.
+
+module Types
+  ( -- * Types
+    P.Identifier(..)
+  , P.StorageClassSpecifier(..)
+  , P.TypeQualifier(..)
+  , P.FunctionSpecifier(..)
+  , P.ArrayType(..)
+  , Specifiers(..)
+  , Type(..)
+  , TypeSpecifier(..)
+  , Sign(..)
+  , ParameterDeclaration(..)
+
+    -- * Parsing
+  , P.IsTypeName
+  , P.CParser
+  , P.runCParser
+  , P.quickCParser
+  , P.quickCParser_
+  , parseParameterDeclaration
+  , parseParameterList
+  , parseIdentifier
+  , parseType
+
+    -- * Convert to and from high-level views
+  , UntangleErr(..)
+  , untangleParameterDeclaration
+  , tangleParameterDeclaration
+
+    -- * To english
+  , describeParameterDeclaration
+  , describeType
+  ) where
+
+import           Control.Arrow (second)
+import           Control.Monad (when, unless, forM_)
+import           Control.Monad.State (execState, modify)
+import           Data.List (partition)
+import           Data.Semigroup
+import           Data.Maybe (fromMaybe)
+import           Data.Typeable (Typeable)
+import           Text.PrettyPrint.ANSI.Leijen ((</>), (<+>))
+import qualified Text.PrettyPrint.ANSI.Leijen as PP
+
+#if __GLASGOW_HASKELL__ < 710
+import           Data.Functor ((<$>))
+import           Data.Monoid (Monoid(..))
+#endif
+
+import qualified Types.Internal as P
+
+------------------------------------------------------------------------
+-- Proper types
+
+data TypeSpecifier
+  = Void
+  | Char (Maybe Sign)
+  | Short Sign
+  | Int Sign
+  | Long Sign
+  | LLong Sign
+  | Float
+  | Double
+  | LDouble
+  | TypeName P.Identifier
+  | Struct P.Identifier
+  | Enum P.Identifier
+  deriving (Typeable, Show, Eq, Ord)
+
+data Specifiers = Specifiers
+  { storageClassSpecifiers :: [P.StorageClassSpecifier]
+  , typeQualifiers :: [P.TypeQualifier]
+  , functionSpecifiers :: [P.FunctionSpecifier]
+  } deriving (Typeable, Show, Eq, Ord)
+
+instance Monoid Specifiers where
+  mempty = Specifiers [] [] []
+  mappend = (<>)
+
+instance Semigroup Specifiers where
+  (Specifiers x1 y1 z1) <> (Specifiers x2 y2 z2) =
+    Specifiers (x1 ++ x2) (y1 ++ y2) (z1 ++ z2)
+
+data Type
+  = TypeSpecifier Specifiers TypeSpecifier
+  | Ptr [P.TypeQualifier] Type
+  | Array P.ArrayType Type
+  | Proto Type [ParameterDeclaration]
+  deriving (Typeable, Show, Eq, Ord)
+
+data Sign
+  = Signed
+  | Unsigned
+  deriving (Typeable, Show, Eq, Ord)
+
+data ParameterDeclaration = ParameterDeclaration
+  { parameterDeclarationId :: Maybe P.Identifier
+  , parameterDeclarationType :: Type
+  } deriving (Typeable, Show, Eq, Ord)
+
+------------------------------------------------------------------------
+-- Conversion
+
+data UntangleErr
+  = MultipleDataTypes [P.DeclarationSpecifier]
+  | NoDataTypes [P.DeclarationSpecifier]
+  | IllegalSpecifiers String [P.TypeSpecifier]
+  deriving (Typeable, Show, Eq)
+
+failConversion :: UntangleErr -> Either UntangleErr a
+failConversion = Left
+
+untangleParameterDeclaration
+  :: P.ParameterDeclaration -> Either UntangleErr ParameterDeclaration
+untangleParameterDeclaration P.ParameterDeclaration{..} = do
+  (specs, tySpec) <- untangleDeclarationSpecifiers parameterDeclarationSpecifiers
+  let baseTy = TypeSpecifier specs tySpec
+  (mbS, ty) <- case parameterDeclarationDeclarator of
+    Left decltor -> do
+      (s, ty) <- untangleDeclarator baseTy decltor
+      return (Just s, ty)
+    Right decltor -> (Nothing, ) <$> untangleAbstractDeclarator baseTy decltor
+  return $ ParameterDeclaration mbS ty
+
+untangleDeclarationSpecifiers
+  :: [P.DeclarationSpecifier] -> Either UntangleErr (Specifiers, TypeSpecifier)
+untangleDeclarationSpecifiers declSpecs = do
+  let (pStorage, pTySpecs, pTyQuals, pFunSpecs) = flip execState ([], [], [], []) $ do
+        forM_ (reverse declSpecs) $ \declSpec -> case declSpec of
+          P.StorageClassSpecifier x -> modify $ \(a, b, c, d) -> (x:a, b, c, d)
+          P.TypeSpecifier x -> modify $ \(a, b, c, d) -> (a, x:b, c, d)
+          P.TypeQualifier x -> modify $ \(a, b, c, d) -> (a, b, x:c, d)
+          P.FunctionSpecifier x -> modify $ \(a, b, c, d) -> (a, b, c, x:d)
+  -- Split data type and specifiers
+  let (dataTypes, specs) =
+        partition (\x -> not (x `elem` [P.SIGNED, P.UNSIGNED, P.LONG, P.SHORT])) pTySpecs
+  let illegalSpecifiers s = failConversion $ IllegalSpecifiers s specs
+  -- Find out sign, if present
+  mbSign0 <- case filter (== P.SIGNED) specs of
+    []  -> return Nothing
+    [_] -> return $ Just Signed
+    _:_ -> illegalSpecifiers "conflicting/duplicate sign information"
+  mbSign <- case (mbSign0, filter (== P.UNSIGNED) specs) of
+    (Nothing, []) -> return Nothing
+    (Nothing, [_]) -> return $ Just Unsigned
+    (Just b, []) -> return $ Just b
+    _ -> illegalSpecifiers "conflicting/duplicate sign information"
+  let sign = fromMaybe Signed mbSign
+  -- Find out length
+  let longs = length $ filter (== P.LONG) specs
+  let shorts = length $ filter (== P.SHORT) specs
+  when (longs > 0 && shorts > 0) $ illegalSpecifiers "both long and short"
+  -- Find out data type
+  dataType <- case dataTypes of
+    [x] -> return x
+    [] | longs > 0 || shorts > 0 -> return P.INT
+    [] -> failConversion $ NoDataTypes declSpecs
+    _:_ -> failConversion $ MultipleDataTypes declSpecs
+  -- Check if things are compatible with one another
+  let checkNoSpecs =
+        unless (null specs) $ illegalSpecifiers "expecting no specifiers"
+  let checkNoLength =
+        when (longs > 0 || shorts > 0) $ illegalSpecifiers "unexpected long/short"
+  tySpec <- case dataType of
+    P.TypeName s -> do
+      checkNoSpecs
+      return $ TypeName s
+    P.Struct s -> do
+      checkNoSpecs
+      return $ Struct s
+    P.Enum s -> do
+      checkNoSpecs
+      return $ Enum s
+    P.VOID -> do
+      checkNoSpecs
+      return Void
+    P.CHAR -> do
+      checkNoLength
+      return $ Char mbSign
+    P.INT | longs == 0 && shorts == 0 -> do
+      return $ Int sign
+    P.INT | longs == 1 -> do
+      return $ Long sign
+    P.INT | longs == 2 -> do
+      return $ LLong sign
+    P.INT | shorts == 1 -> do
+      return $ Short sign
+    P.INT -> do
+      illegalSpecifiers "too many long/short"
+    P.FLOAT -> do
+      checkNoLength
+      return Float
+    P.DOUBLE -> do
+      if longs == 1
+        then return LDouble
+        else do
+          checkNoLength
+          return Double
+    _ -> do
+      error $ "untangleDeclarationSpecifiers impossible: " ++ show dataType
+  return (Specifiers pStorage pTyQuals pFunSpecs, tySpec)
+
+untangleDeclarator
+  :: Type -> P.Declarator -> Either UntangleErr (P.Identifier, Type)
+untangleDeclarator ty0 (P.Declarator ptrs0 directDecltor) = go ty0 ptrs0
+  where
+    go :: Type -> [P.Pointer] -> Either UntangleErr (P.Identifier, Type)
+    go ty [] = goDirect ty directDecltor
+    go ty (P.Pointer quals : ptrs) = go (Ptr quals ty) ptrs
+
+    goDirect :: Type -> P.DirectDeclarator -> Either UntangleErr (P.Identifier, Type)
+    goDirect ty direct0 = case direct0 of
+      P.DeclaratorRoot s -> return (s, ty)
+      P.ArrayOrProto direct (P.Array arrayType) ->
+        goDirect (Array arrayType ty) direct
+      P.ArrayOrProto direct (P.Proto params) -> do
+        params' <- mapM untangleParameterDeclaration params
+        goDirect (Proto ty params') direct
+      P.DeclaratorParens decltor ->
+        untangleDeclarator ty decltor
+
+untangleAbstractDeclarator
+  :: Type -> P.AbstractDeclarator -> Either UntangleErr Type
+untangleAbstractDeclarator ty0 (P.AbstractDeclarator ptrs0 mbDirectDecltor) =
+  go ty0 ptrs0
+  where
+    go :: Type -> [P.Pointer] -> Either UntangleErr Type
+    go ty [] = case mbDirectDecltor of
+      Nothing -> return ty
+      Just directDecltor -> goDirect ty directDecltor
+    go ty (P.Pointer quals : ptrs) = go (Ptr quals ty) ptrs
+
+    goDirect :: Type -> P.DirectAbstractDeclarator -> Either UntangleErr Type
+    goDirect ty direct0 = case direct0 of
+      P.ArrayOrProtoThere direct (P.Array arrayType) ->
+        goDirect (Array arrayType ty) direct
+      P.ArrayOrProtoThere direct (P.Proto params) -> do
+        params' <- mapM untangleParameterDeclaration params
+        goDirect (Proto ty params') direct
+      P.ArrayOrProtoHere (P.Array arrayType) ->
+        return $ Array arrayType ty
+      P.ArrayOrProtoHere (P.Proto params) -> do
+        params' <- mapM untangleParameterDeclaration params
+        return $ Proto ty params'
+      P.AbstractDeclaratorParens decltor ->
+        untangleAbstractDeclarator ty decltor
+
+------------------------------------------------------------------------
+-- Tangling
+
+tangleParameterDeclaration :: ParameterDeclaration -> P.ParameterDeclaration
+tangleParameterDeclaration (ParameterDeclaration mbId ty00) =
+    uncurry P.ParameterDeclaration $ case mbId of
+      Nothing -> second Right $ goAbstractDirect ty00 Nothing
+      Just id' -> second Left $ goConcreteDirect ty00 $ P.DeclaratorRoot id'
+  where
+    goAbstractDirect
+      :: Type -> Maybe P.DirectAbstractDeclarator
+      -> ([P.DeclarationSpecifier], P.AbstractDeclarator)
+    goAbstractDirect ty0 mbDirect = case ty0 of
+      TypeSpecifier specifiers tySpec ->
+        let declSpecs = tangleTypeSpecifier specifiers tySpec
+        in (declSpecs, P.AbstractDeclarator [] mbDirect)
+      Ptr tyQuals ty ->
+        goAbstract ty [P.Pointer tyQuals] mbDirect
+      Array arrType ty ->
+        let arr = P.Array arrType
+        in case mbDirect of
+          Nothing ->
+            goAbstractDirect ty $ Just $ P.ArrayOrProtoHere arr
+          Just decltor ->
+            goAbstractDirect ty $ Just $ P.ArrayOrProtoThere decltor arr
+      Proto ty params ->
+        let proto = P.Proto $ map tangleParameterDeclaration params
+        in case mbDirect of
+          Nothing ->
+            goAbstractDirect ty $ Just $ P.ArrayOrProtoHere proto
+          Just decltor ->
+            goAbstractDirect ty $ Just $ P.ArrayOrProtoThere decltor proto
+
+    goAbstract
+      :: Type -> [P.Pointer] -> Maybe P.DirectAbstractDeclarator
+      -> ([P.DeclarationSpecifier], P.AbstractDeclarator)
+    goAbstract ty0 ptrs mbDirect = case ty0 of
+      TypeSpecifier specifiers tySpec ->
+        let declSpecs = tangleTypeSpecifier specifiers tySpec
+        in (declSpecs, P.AbstractDeclarator ptrs mbDirect)
+      Ptr tyQuals ty ->
+        goAbstract ty (P.Pointer tyQuals : ptrs) mbDirect
+      Array{} ->
+        goAbstractDirect ty0 $ Just $ P.AbstractDeclaratorParens $
+          P.AbstractDeclarator ptrs mbDirect
+      Proto{} ->
+        goAbstractDirect ty0 $ Just $ P.AbstractDeclaratorParens $
+          P.AbstractDeclarator ptrs mbDirect
+
+    goConcreteDirect
+      :: Type -> P.DirectDeclarator
+      -> ([P.DeclarationSpecifier], P.Declarator)
+    goConcreteDirect ty0 direct = case ty0 of
+      TypeSpecifier specifiers tySpec ->
+        let declSpecs = tangleTypeSpecifier specifiers tySpec
+        in (declSpecs, P.Declarator [] direct)
+      Ptr tyQuals ty ->
+        goConcrete ty [P.Pointer tyQuals] direct
+      Array arrType ty ->
+        goConcreteDirect ty $ P.ArrayOrProto direct $ P.Array arrType
+      Proto ty params ->
+        goConcreteDirect ty $ P.ArrayOrProto direct $
+          P.Proto $ map tangleParameterDeclaration params
+
+    goConcrete
+      :: Type -> [P.Pointer] -> P.DirectDeclarator
+      -> ([P.DeclarationSpecifier], P.Declarator)
+    goConcrete ty0 ptrs direct = case ty0 of
+      TypeSpecifier specifiers tySpec ->
+        let declSpecs = tangleTypeSpecifier specifiers tySpec
+        in (declSpecs, P.Declarator ptrs direct)
+      Ptr tyQuals ty ->
+        goConcrete ty (P.Pointer tyQuals : ptrs) direct
+      Array{} ->
+        goConcreteDirect ty0 $ P.DeclaratorParens $ P.Declarator ptrs direct
+      Proto{} ->
+        goConcreteDirect ty0 $ P.DeclaratorParens $ P.Declarator ptrs direct
+
+tangleTypeSpecifier :: Specifiers -> TypeSpecifier -> [P.DeclarationSpecifier]
+tangleTypeSpecifier (Specifiers storages tyQuals funSpecs) tySpec =
+  let pTySpecs = case tySpec of
+        Void -> [P.VOID]
+        Char Nothing -> [P.CHAR]
+        Char (Just Signed) -> [P.SIGNED, P.CHAR]
+        Char (Just Unsigned) -> [P.UNSIGNED, P.CHAR]
+        Short Signed -> [P.SHORT]
+        Short Unsigned -> [P.UNSIGNED, P.SHORT]
+        Int Signed -> [P.INT]
+        Int Unsigned -> [P.UNSIGNED]
+        Long Signed -> [P.LONG]
+        Long Unsigned -> [P.UNSIGNED, P.LONG]
+        LLong Signed -> [P.LONG, P.LONG]
+        LLong Unsigned -> [P.UNSIGNED, P.LONG, P.LONG]
+        Float -> [P.FLOAT]
+        Double -> [P.DOUBLE]
+        LDouble -> [P.LONG, P.DOUBLE]
+        TypeName s -> [P.TypeName s]
+        Struct s -> [P.Struct s]
+        Enum s -> [P.Enum s]
+  in map P.StorageClassSpecifier storages ++
+     map P.TypeQualifier tyQuals ++
+     map P.FunctionSpecifier funSpecs ++
+     map P.TypeSpecifier pTySpecs
+
+------------------------------------------------------------------------
+-- To english
+
+describeParameterDeclaration :: ParameterDeclaration -> PP.Doc
+describeParameterDeclaration (ParameterDeclaration mbId ty) =
+  let idDoc = case mbId of
+        Nothing -> ""
+        Just id' -> PP.pretty id' <+> "is a "
+  in idDoc <> describeType ty
+
+describeType :: Type -> PP.Doc
+describeType ty0 = case ty0 of
+  TypeSpecifier specs tySpec -> engSpecs specs <> PP.pretty tySpec
+  Ptr quals ty -> engQuals quals <> "ptr to" <+> describeType ty
+  Array arrTy ty -> engArrTy arrTy <> "of" <+> describeType ty
+  Proto retTy params ->
+     "function from" <+> engParams params <> "returning" <+> describeType retTy
+  where
+    engSpecs (Specifiers [] [] []) = ""
+    engSpecs (Specifiers x y z) =
+      let xs = map P.StorageClassSpecifier x ++ map P.TypeQualifier y ++
+               map P.FunctionSpecifier z
+      in PP.hsep (map PP.pretty xs) <> " "
+
+    engQuals = PP.hsep . map PP.pretty
+
+    engArrTy arrTy = case arrTy of
+      P.VariablySized -> "variably sized array "
+      P.SizedByInteger n -> "array of size" <+> PP.text (show n) <> " "
+      P.SizedByIdentifier s -> "array of size" <+> PP.pretty s <> " "
+      P.Unsized -> "array "
+
+    engParams [] = ""
+    engParams params0 = "(" <> go params0 <> ") "
+      where
+        go xs = case xs of
+          [] -> ""
+          [x] -> describeParameterDeclaration x
+          (x:xs') -> describeParameterDeclaration x <> "," <+> go xs'
+
+------------------------------------------------------------------------
+-- Convenient parsing
+
+untangleParameterDeclaration'
+  :: P.CParser m => P.ParameterDeclaration -> m ParameterDeclaration
+untangleParameterDeclaration' pDecl =
+  case untangleParameterDeclaration pDecl of
+    Left err -> fail $ pretty80 $
+      "Error while parsing declaration:" </> PP.pretty err </> PP.pretty pDecl
+    Right x -> return x
+
+parseParameterDeclaration :: P.CParser m => m ParameterDeclaration
+parseParameterDeclaration =
+  untangleParameterDeclaration' =<< P.parameter_declaration
+
+parseParameterList :: P.CParser m => m [ParameterDeclaration]
+parseParameterList =
+  mapM untangleParameterDeclaration' =<< P.parameter_list
+
+parseIdentifier :: P.CParser m => m P.Identifier
+parseIdentifier = P.identifier_no_lex
+
+parseType :: P.CParser m => m Type
+parseType = parameterDeclarationType <$> parseParameterDeclaration
+
+------------------------------------------------------------------------
+-- Pretty
+
+instance PP.Pretty TypeSpecifier where
+  pretty tySpec = case tySpec of
+    Void -> "void"
+    Char Nothing -> "char"
+    Char (Just Signed) -> "signed char"
+    Char (Just Unsigned) -> "unsigned char"
+    Short Signed -> "short"
+    Short Unsigned -> "unsigned short"
+    Int Signed -> "int"
+    Int Unsigned -> "unsigned"
+    Long Signed -> "long"
+    Long Unsigned -> "unsigned long"
+    LLong Signed -> "long long"
+    LLong Unsigned -> "unsigned long long"
+    Float -> "float"
+    Double -> "double"
+    LDouble -> "long double"
+    TypeName s -> PP.pretty s
+    Struct s -> "struct" <+> PP.pretty s
+    Enum s -> "enum" <+> PP.pretty s
+
+instance PP.Pretty UntangleErr where
+  pretty err = case err of
+    MultipleDataTypes specs ->
+      "Multiple data types in" </> PP.prettyList specs
+    IllegalSpecifiers s specs ->
+      "Illegal specifiers, " <+> PP.text s <+> ", in" </> PP.prettyList specs
+    NoDataTypes specs ->
+      "No data types in " </> PP.prettyList specs
+
+instance PP.Pretty ParameterDeclaration where
+  pretty = PP.pretty . tangleParameterDeclaration
+
+instance PP.Pretty Type where
+  pretty ty =
+    PP.pretty $ tangleParameterDeclaration $ ParameterDeclaration Nothing ty
+
+------------------------------------------------------------------------
+-- Utils
+
+pretty80 :: PP.Doc -> String
+pretty80 x = PP.displayS (PP.renderPretty 0.8 80 x) ""
diff --git a/src-generate/Types/Internal.hs b/src-generate/Types/Internal.hs
new file mode 100644
--- /dev/null
+++ b/src-generate/Types/Internal.hs
@@ -0,0 +1,651 @@
+{-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+
+-- | A parser for C99 declarations. Currently, the parser has the following limitations:
+--
+-- * Array sizes can only be @*@, @n@ (where n is a positive integer), @x@
+-- (where @x@ is a C identifier). In C99 they can be arbitrary expressions. See
+-- the @'ArrayType'@ data type.
+--
+-- * @_Bool@, @_Complex@, and @_Imaginary@ are not present.
+--
+-- * Untyped parameter lists (pre-K&R C) are not allowed.
+--
+-- The parser is incremental and generic (see 'CParser').  'PP.Pretty'
+-- and 'QC.Arbitrary' instances are provided for all the data types.
+--
+-- The entry point if you want to parse C declarations is
+-- @'parameter_declaration'@.
+
+module Types.Internal
+  ( -- * Parser type
+    CParser
+  , IsTypeName
+  , runCParser
+  , quickCParser
+  , quickCParser_
+
+    -- * Types and parsing
+  , Identifier(..)
+  , identifier
+  , identifier_no_lex
+  , DeclarationSpecifier(..)
+  , declaration_specifiers
+  , StorageClassSpecifier(..)
+  , storage_class_specifier
+  , TypeSpecifier(..)
+  , type_specifier
+  , TypeQualifier(..)
+  , type_qualifier
+  , FunctionSpecifier(..)
+  , function_specifier
+  , Declarator(..)
+  , declarator
+  , DirectDeclarator(..)
+  , direct_declarator
+  , ArrayOrProto(..)
+  , array_or_proto
+  , ArrayType(..)
+  , array_type
+  , Pointer(..)
+  , pointer
+  , ParameterDeclaration(..)
+  , parameter_declaration
+  , parameter_list
+  , AbstractDeclarator(..)
+  , abstract_declarator
+  , DirectAbstractDeclarator(..)
+  , direct_abstract_declarator
+
+    -- * YACC grammar
+    -- $yacc
+
+  ) where
+
+import           Control.Applicative
+import           Control.Monad (msum, void, MonadPlus, unless, when)
+import           Control.Monad.Reader (MonadReader, ask, runReaderT, ReaderT)
+import           Data.Functor.Identity (Identity)
+import qualified Data.HashSet as HashSet
+import           Data.Monoid ((<>))
+import           Data.String (IsString(..))
+import           Data.Typeable (Typeable)
+import qualified Text.Parsec as Parsec
+import           Text.Parser.Char
+import           Text.Parser.Combinators
+import           Text.Parser.LookAhead
+import           Text.Parser.Token
+import qualified Text.Parser.Token.Highlight as Highlight
+import           Text.PrettyPrint.ANSI.Leijen (Pretty(..), (<+>), Doc, hsep)
+import qualified Text.PrettyPrint.ANSI.Leijen as PP
+
+------------------------------------------------------------------------
+-- Parser
+
+-- | Function used to determine whether an 'C.Id' is a type name.
+type IsTypeName = Identifier -> Bool
+
+-- | All the parsing is done using the type classes provided by the
+-- @parsers@ package. You can use the parsing routines with any of the parsers
+-- that implement the classes, such as @parsec@ or @trifecta@.
+--
+-- The 'MonadReader' with 'IsTypeName' is required for parsing C, see
+-- <http://en.wikipedia.org/wiki/The_lexer_hack>.
+type CParser m = (Monad m, Functor m, Applicative m, MonadPlus m, Parsing m, CharParsing m, TokenParsing m, LookAheadParsing m, MonadReader IsTypeName m)
+
+-- | Runs a @'CParser'@ using @parsec@.
+runCParser
+  :: Parsec.Stream s Identity Char
+  => IsTypeName
+  -- ^ Function determining if an identifier is a type name.
+  -> String
+  -- ^ Source name.
+  -> s
+  -- ^ String to parse.
+  -> (ReaderT IsTypeName (Parsec.Parsec s ()) a)
+  -- ^ Parser.  Anything with type @forall m. CParser m => m a@ is a
+  -- valid argument.
+  -> Either Parsec.ParseError a
+runCParser isTypeName fn s p = Parsec.parse (runReaderT p isTypeName) fn s
+
+-- | Useful for quick testing.  Uses @\"quickCParser\"@ as source name, and throws
+-- an 'error' if parsing fails.
+quickCParser
+  :: IsTypeName
+  -- ^ Function determining if an identifier is a type name.
+  -> String
+  -- ^ String to parse.
+  -> (ReaderT IsTypeName (Parsec.Parsec String ()) a)
+  -- ^ Parser.  Anything with type @forall m. CParser m => m a@ is a
+  -- valid argument.
+  -> a
+quickCParser isTypeName s p = case runCParser isTypeName "quickCParser" s p of
+  Left err -> error $ "quickCParser: " ++ show err
+  Right x -> x
+
+-- | Like 'quickCParser', but uses @'const' 'False'@ as 'IsTypeName'.
+quickCParser_
+  :: String
+  -- ^ String to parse.
+  -> (ReaderT IsTypeName (Parsec.Parsec String ()) a)
+  -- ^ Parser.  Anything with type @forall m. CParser m => m a@ is a
+  -- valid argument.
+  -> a
+quickCParser_ = quickCParser (const False)
+
+newtype Identifier = Identifier {unIdentifier :: String}
+  deriving (Typeable, Eq, Ord, Show)
+
+instance IsString Identifier where
+  fromString s =
+    case runCParser (const False) "fromString" s (identifier_no_lex <* eof) of
+      Left _err -> error $ "Identifier fromString: invalid string " ++ show s
+      Right x -> x
+
+identLetter :: CParser m => m Char
+identLetter = oneOf $ ['a'..'z'] ++ ['A'..'Z'] ++ ['_']
+
+reservedWords :: HashSet.HashSet String
+reservedWords = HashSet.fromList
+  [ "auto", "else", "long", "switch"
+  , "break", "enum", "register", "typedef"
+  , "case", "extern", "return", "union"
+  , "char", "float", "short", "unsigned"
+  , "const", "for", "signed", "void"
+  , "continue", "goto", "sizeof", "volatile"
+  , "default", "if", "static", "while"
+  , "do", "int", "struct", "double"
+  ]
+
+identStyle :: CParser m => IdentifierStyle m
+identStyle = IdentifierStyle
+  { _styleName = "C identifier"
+  , _styleStart = identLetter
+  , _styleLetter = identLetter <|> digit
+  , _styleReserved = reservedWords
+  , _styleHighlight = Highlight.Identifier
+  , _styleReservedHighlight = Highlight.ReservedIdentifier
+  }
+
+data DeclarationSpecifier
+  = StorageClassSpecifier StorageClassSpecifier
+  | TypeSpecifier TypeSpecifier
+  | TypeQualifier TypeQualifier
+  | FunctionSpecifier FunctionSpecifier
+  deriving (Typeable, Eq, Show, Ord)
+
+declaration_specifiers :: forall m. CParser m => m [DeclarationSpecifier]
+declaration_specifiers = many1 $ msum
+  [ StorageClassSpecifier <$> storage_class_specifier
+  , TypeSpecifier <$> type_specifier
+  , TypeQualifier <$> type_qualifier
+  , FunctionSpecifier <$> function_specifier
+  ]
+
+data StorageClassSpecifier
+  = TYPEDEF
+  | EXTERN
+  | STATIC
+  | AUTO
+  | REGISTER
+  deriving (Typeable, Eq, Show, Ord)
+
+storage_class_specifier :: CParser m => m StorageClassSpecifier
+storage_class_specifier = msum
+  [ TYPEDEF <$ reserve identStyle "typedef"
+  , EXTERN <$ reserve identStyle "extern"
+  , STATIC <$ reserve identStyle "static"
+  , AUTO <$ reserve identStyle "auto"
+  , REGISTER <$ reserve identStyle "register"
+  ]
+
+data TypeSpecifier
+  = VOID
+  | CHAR
+  | SHORT
+  | INT
+  | LONG
+  | FLOAT
+  | DOUBLE
+  | SIGNED
+  | UNSIGNED
+  | Struct Identifier
+  | Enum Identifier
+  | TypeName Identifier
+  deriving (Typeable, Eq, Show, Ord)
+
+type_specifier :: CParser m => m TypeSpecifier
+type_specifier = msum
+  [ VOID <$ reserve identStyle "void"
+  , CHAR <$ reserve identStyle "char"
+  , SHORT <$ reserve identStyle "short"
+  , INT <$ reserve identStyle "int"
+  , LONG <$ reserve identStyle "long"
+  , FLOAT <$ reserve identStyle "float"
+  , DOUBLE <$ reserve identStyle "double"
+  , SIGNED <$ reserve identStyle "signed"
+  , UNSIGNED <$ reserve identStyle "unsigned"
+  , Struct <$> (reserve identStyle "struct" >> identifier)
+  , Enum <$> (reserve identStyle "enum" >> identifier)
+  , TypeName <$> type_name
+  ]
+
+identifier :: CParser m => m Identifier
+identifier =
+  try (do s <- ident identStyle
+          isTypeName <- ask
+          when (isTypeName s) $
+            fail "expecting identifier, got type name"
+          return s)
+  <?> "identifier"
+
+type_name :: CParser m => m Identifier
+type_name =
+  try (do s <- ident identStyle
+          isTypeName <- ask
+          unless (isTypeName s) $
+            fail "expecting type name, got identifier"
+          return s)
+  <?> "type name"
+
+data TypeQualifier
+  = CONST
+  | RESTRICT
+  | VOLATILE
+  deriving (Typeable, Eq, Show, Ord)
+
+type_qualifier :: CParser m => m TypeQualifier
+type_qualifier = msum
+  [ CONST <$ reserve identStyle "const"
+  , RESTRICT <$ reserve identStyle "restrict"
+  , VOLATILE <$ reserve identStyle "volatile"
+  ]
+
+data FunctionSpecifier
+  = INLINE
+  deriving (Typeable, Eq, Show, Ord)
+
+function_specifier :: CParser m => m FunctionSpecifier
+function_specifier = msum
+  [ INLINE <$ reserve identStyle "inline"
+  ]
+
+data Declarator = Declarator
+  { declaratorPointers :: [Pointer]
+  , declaratorDirect :: DirectDeclarator
+  } deriving (Typeable, Eq, Show, Ord)
+
+declarator :: CParser m => m Declarator
+declarator = (Declarator <$> many pointer <*> direct_declarator) <?> "declarator"
+
+data DirectDeclarator
+  = DeclaratorRoot Identifier
+  | ArrayOrProto DirectDeclarator ArrayOrProto
+  | DeclaratorParens Declarator
+  deriving (Typeable, Eq, Show, Ord)
+
+data ArrayOrProto
+  = Array ArrayType
+  | Proto [ParameterDeclaration] -- We don't include old prototypes.
+  deriving (Typeable, Eq, Show, Ord)
+
+array_or_proto :: CParser m => m ArrayOrProto
+array_or_proto = msum
+  [ Array <$> brackets array_type
+  , Proto <$> parens parameter_list
+  ]
+
+-- TODO handle more stuff in array brackets
+data ArrayType
+  = VariablySized
+  | Unsized
+  | SizedByInteger Integer
+  | SizedByIdentifier Identifier
+  deriving (Typeable, Eq, Show, Ord)
+
+array_type :: CParser m => m ArrayType
+array_type = msum
+  [ VariablySized <$ symbolic '*'
+  , SizedByInteger <$> natural
+  , SizedByIdentifier <$> identifier
+  , return Unsized
+  ]
+
+direct_declarator :: CParser m => m DirectDeclarator
+direct_declarator =
+  (do ddecltor <- msum
+        [ DeclaratorRoot <$> identifier
+        , DeclaratorParens <$> parens declarator
+        ]
+      aops <- many array_or_proto
+      return $ foldl ArrayOrProto ddecltor aops)
+
+data Pointer
+  = Pointer [TypeQualifier]
+  deriving (Typeable, Eq, Show, Ord)
+
+pointer :: CParser m => m Pointer
+pointer = do
+  void $ symbolic '*'
+  Pointer <$> many type_qualifier
+
+parameter_list :: CParser m => m [ParameterDeclaration]
+parameter_list =
+  sepBy parameter_declaration $ symbolic ','
+
+data ParameterDeclaration = ParameterDeclaration
+  { parameterDeclarationSpecifiers :: [DeclarationSpecifier]
+  , parameterDeclarationDeclarator :: Either Declarator AbstractDeclarator
+  } deriving (Typeable, Eq, Show, Ord)
+
+parameter_declaration :: CParser m => m ParameterDeclaration
+parameter_declaration =
+  ParameterDeclaration
+    <$> declaration_specifiers
+    <*> mbabstract
+  where
+   mbabstract =
+     Left <$> try declarator <|>
+     Right <$> try abstract_declarator <|>
+     return (Right (AbstractDeclarator [] Nothing))
+
+data AbstractDeclarator = AbstractDeclarator
+  { abstractDeclaratorPointers :: [Pointer]
+  , abstractDeclaratorDirect :: Maybe DirectAbstractDeclarator
+  } deriving (Typeable, Eq, Show, Ord)
+
+abstract_declarator :: CParser m => m AbstractDeclarator
+abstract_declarator = do
+  ptrs <- many pointer
+  -- If there are no pointers, there must be an abstract declarator.
+  let p = if null ptrs
+        then Just <$> direct_abstract_declarator
+        else (Just <$> try direct_abstract_declarator) <|> return Nothing
+  AbstractDeclarator ptrs <$> p
+
+data DirectAbstractDeclarator
+  = ArrayOrProtoHere ArrayOrProto
+  | ArrayOrProtoThere DirectAbstractDeclarator ArrayOrProto
+  | AbstractDeclaratorParens AbstractDeclarator
+  deriving (Typeable, Eq, Show, Ord)
+
+direct_abstract_declarator :: CParser m => m DirectAbstractDeclarator
+direct_abstract_declarator =
+  (do ddecltor <- msum
+        [ try (ArrayOrProtoHere <$> array_or_proto)
+        , AbstractDeclaratorParens <$> parens abstract_declarator
+        ] <?> "array, prototype, or parenthesised abstract declarator"
+      aops <- many array_or_proto
+      return $ foldl ArrayOrProtoThere ddecltor aops)
+
+-- | This parser parses an 'Id' and nothing else -- it does not consume
+-- trailing spaces and the like.
+identifier_no_lex :: CParser m => m Identifier
+identifier_no_lex =
+  try (do s <- Identifier <$> ((:) <$> identLetter <*> many (identLetter <|> digit))
+          isTypeName <- ask
+          when (isTypeName s) $
+            fail "expecting identifier, got type name"
+          return s)
+  <?> "identifier"
+
+------------------------------------------------------------------------
+-- Pretty printing
+
+instance Pretty Identifier where
+  pretty = PP.text . unIdentifier
+
+instance Pretty DeclarationSpecifier where
+  pretty dspec = case dspec of
+    StorageClassSpecifier x -> pretty x
+    TypeSpecifier x -> pretty x
+    TypeQualifier x -> pretty x
+    FunctionSpecifier x -> pretty x
+
+instance Pretty StorageClassSpecifier where
+  pretty storage = case storage of
+    TYPEDEF -> "typedef"
+    EXTERN -> "extern"
+    STATIC -> "static"
+    AUTO -> "auto"
+    REGISTER -> "register"
+
+instance Pretty TypeSpecifier where
+  pretty tySpec = case tySpec of
+   VOID -> "void"
+   CHAR -> "char"
+   SHORT -> "short"
+   INT -> "int"
+   LONG -> "long"
+   FLOAT -> "float"
+   DOUBLE -> "double"
+   SIGNED -> "signed"
+   UNSIGNED -> "unsigned"
+   Struct x -> "struct" <+> pretty x
+   Enum x -> "enum" <+> pretty x
+   TypeName x -> pretty x
+
+instance Pretty TypeQualifier where
+  pretty tyQual = case tyQual of
+    CONST -> "const"
+    RESTRICT -> "restrict"
+    VOLATILE -> "volatile"
+
+instance Pretty FunctionSpecifier where
+  pretty funSpec = case funSpec of
+    INLINE -> "inline"
+
+instance Pretty Declarator where
+  pretty (Declarator ptrs ddecltor) = case ptrs of
+    [] -> pretty ddecltor
+    _:_ -> prettyPointers ptrs <+> pretty ddecltor
+
+prettyPointers :: [Pointer] -> Doc
+prettyPointers [] = ""
+prettyPointers (x : xs) = pretty x <> prettyPointers xs
+
+instance Pretty Pointer where
+  pretty (Pointer tyQual) = "*" <> hsep (map pretty tyQual)
+
+instance Pretty DirectDeclarator where
+  pretty decltor = case decltor of
+    DeclaratorRoot x -> pretty x
+    DeclaratorParens x -> "(" <> pretty x <> ")"
+    ArrayOrProto ddecltor aorp -> pretty ddecltor <> pretty aorp
+
+instance Pretty ArrayOrProto where
+  pretty aorp = case aorp of
+    Array x -> "[" <> pretty x <> "]"
+    Proto x -> "(" <> prettyParams x <> ")"
+
+prettyParams :: (Pretty a) => [a] -> Doc
+prettyParams xs = case xs of
+  [] -> ""
+  [x] -> pretty x
+  x : xs'@(_:_) -> pretty x <> "," <+> prettyParams xs'
+
+instance Pretty ArrayType where
+  pretty at = case at of
+    VariablySized -> "*"
+    SizedByInteger n -> pretty n
+    SizedByIdentifier s -> pretty s
+    Unsized -> ""
+
+instance Pretty ParameterDeclaration where
+  pretty (ParameterDeclaration declSpecs decltor) = case declSpecs of
+    [] -> decltorDoc
+    _:_ -> hsep (map pretty declSpecs) <+> decltorDoc
+    where
+      decltorDoc = case decltor of
+        Left x -> pretty x
+        Right x -> pretty x
+
+instance Pretty AbstractDeclarator where
+  pretty (AbstractDeclarator ptrs mbDecltor) = case (ptrs, mbDecltor) of
+    (_, Nothing) -> prettyPointers ptrs
+    ([], Just x) -> pretty x
+    (_:_, Just x) -> prettyPointers ptrs <+> pretty x
+
+instance Pretty DirectAbstractDeclarator where
+  pretty ddecltor = case ddecltor of
+    AbstractDeclaratorParens x -> "(" <> pretty x <> ")"
+    ArrayOrProtoHere aop -> pretty aop
+    ArrayOrProtoThere ddecltor' aop -> pretty ddecltor' <> pretty aop
+
+------------------------------------------------------------------------
+
+------------------------------------------------------------------------
+-- Utils
+
+many1 :: CParser m => m a -> m [a]
+many1 p = (:) <$> p <*> many p
+
+------------------------------------------------------------------------
+-- YACC grammar
+
+-- $yacc
+--
+-- The parser above is derived from a modification of the YACC grammar
+-- for C99 found at <http://www.quut.com/c/ANSI-C-grammar-y-1999.html>,
+-- reproduced below.
+--
+-- @
+-- %token IDENTIFIER TYPE_NAME INTEGER
+--
+-- %token TYPEDEF EXTERN STATIC AUTO REGISTER INLINE RESTRICT
+-- %token CHAR SHORT INT LONG SIGNED UNSIGNED FLOAT DOUBLE CONST VOLATILE VOID
+-- %token BOOL COMPLEX IMAGINARY
+-- %token STRUCT UNION ENUM
+--
+-- %start parameter_list
+-- %%
+--
+-- declaration_specifiers
+-- 	: storage_class_specifier
+-- 	| storage_class_specifier declaration_specifiers
+-- 	| type_specifier
+-- 	| type_specifier declaration_specifiers
+-- 	| type_qualifier
+-- 	| type_qualifier declaration_specifiers
+-- 	| function_specifier
+-- 	| function_specifier declaration_specifiers
+-- 	;
+--
+-- storage_class_specifier
+-- 	: TYPEDEF
+-- 	| EXTERN
+-- 	| STATIC
+-- 	| AUTO
+-- 	| REGISTER
+-- 	;
+--
+-- type_specifier
+-- 	: VOID
+-- 	| CHAR
+-- 	| SHORT
+-- 	| INT
+-- 	| LONG
+-- 	| FLOAT
+-- 	| DOUBLE
+-- 	| SIGNED
+-- 	| UNSIGNED
+-- 	| BOOL
+-- 	| COMPLEX
+-- 	| IMAGINARY
+--  	| STRUCT IDENTIFIER
+-- 	| UNION IDENTIFIER
+-- 	| ENUM IDENTIFIER
+-- 	| TYPE_NAME
+-- 	;
+--
+-- type_qualifier
+-- 	: CONST
+-- 	| RESTRICT
+-- 	| VOLATILE
+-- 	;
+--
+-- function_specifier
+-- 	: INLINE
+-- 	;
+--
+-- declarator
+-- 	: pointer direct_declarator
+-- 	| direct_declarator
+-- 	;
+--
+-- direct_declarator
+-- 	: IDENTIFIER
+-- 	| '(' declarator ')'
+-- 	| direct_declarator '[' type_qualifier_list ']'
+-- 	| direct_declarator '[' type_qualifier_list '*' ']'
+-- 	| direct_declarator '[' '*' ']'
+--  	| direct_declarator '[' IDENTIFIER ']'
+-- 	| direct_declarator '[' INTEGER ']'
+-- 	| direct_declarator '[' ']'
+-- 	| direct_declarator '(' parameter_list ')'
+-- 	| direct_declarator '(' ')'
+-- 	;
+--
+-- pointer
+-- 	: '*'
+-- 	| '*' type_qualifier_list
+-- 	| '*' pointer
+-- 	| '*' type_qualifier_list pointer
+-- 	;
+--
+-- type_qualifier_list
+-- 	: type_qualifier
+-- 	| type_qualifier_list type_qualifier
+-- 	;
+--
+-- parameter_list
+-- 	: parameter_declaration
+-- 	| parameter_list ',' parameter_declaration
+-- 	;
+--
+-- parameter_declaration
+-- 	: declaration_specifiers declarator
+-- 	| declaration_specifiers abstract_declarator
+-- 	| declaration_specifiers
+-- 	;
+--
+-- abstract_declarator
+-- 	: pointer
+-- 	| direct_abstract_declarator
+-- 	| pointer direct_abstract_declarator
+-- 	;
+--
+-- direct_abstract_declarator
+-- 	: '(' abstract_declarator ')'
+-- 	| '[' ']'
+-- 	| direct_abstract_declarator '[' ']'
+-- 	| '[' '*' ']'
+-- 	| direct_abstract_declarator '[' '*' ']'
+-- 	| '[' IDENTIFIER ']'
+-- 	| direct_abstract_declarator '[' IDENTIFIER ']'
+-- 	| '[' INTEGER ']'
+-- 	| direct_abstract_declarator '[' INTEGER ']'
+-- 	| '(' ')'
+-- 	| '(' parameter_list ')'
+-- 	| direct_abstract_declarator '(' ')'
+-- 	| direct_abstract_declarator '(' parameter_list ')'
+-- 	;
+--
+-- %%
+-- #include \<stdio.h\>
+--
+-- extern char yytext[];
+-- extern int column;
+--
+-- void yyerror(char const *s)
+-- {
+-- 	fflush(stdout);
+-- 	printf("\n%*s\n%*s\n", column, "^", column, s);
+-- }
+-- @
diff --git a/src/Godot/Api.hs b/src/Godot/Api.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Api.hs
@@ -0,0 +1,4 @@
+module Godot.Api (module M) where
+
+import Godot.Api.Auto as M
+import Godot.Api.VarArgs as M
diff --git a/src/Godot/Api/Auto.hs b/src/Godot/Api/Auto.hs
new file mode 100644
# file too large to diff: src/Godot/Api/Auto.hs
diff --git a/src/Godot/Api/VarArgs.hs b/src/Godot/Api/VarArgs.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Api/VarArgs.hs
@@ -0,0 +1,276 @@
+module Godot.Api.VarArgs where
+
+import Data.Coerce (coerce)
+import Foreign.C (withCString)
+import Godot.Internal.Dispatch
+import System.IO.Unsafe (unsafePerformIO)
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+bindObject_emit_signal
+  = unsafePerformIO $
+      withCString "Object" $
+        \ clsNamePtr ->
+          withCString "emit_signal" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindObject_emit_signal #-}
+
+instance Method "emit_signal" GodotObject (GodotString -> [Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls arg1 varargs =
+    withVariantArray
+      ([toVariant arg1] ++ varargs)
+      (\(arrPtr, len) ->
+         godot_method_bind_call bindObject_emit_signal (coerce cls) arrPtr len >>= \(err, res) ->
+           throwIfErr err >> fromGodotVariant res)
+
+bindObject_call
+  = unsafePerformIO $
+      withCString "Object" $
+        \ clsNamePtr ->
+          withCString "call" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindObject_call #-}
+
+instance Method "call" GodotObject (GodotString -> [Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls arg1 varargs =
+    withVariantArray
+      ([toVariant arg1] ++ varargs)
+      (\(arrPtr, len) ->
+         godot_method_bind_call bindObject_call (coerce cls) arrPtr len >>= \(err, res) ->
+           throwIfErr err >> fromGodotVariant res)
+
+bindObject_call_deferred
+  = unsafePerformIO $
+      withCString "Object" $
+        \ clsNamePtr ->
+          withCString "call_deferred" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindObject_call_deferred #-}
+
+instance Method "call_deferred" GodotObject (GodotString -> [Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls arg1 varargs =
+    withVariantArray
+      ([toVariant arg1] ++ varargs)
+      (\(arrPtr, len) ->
+         godot_method_bind_call bindObject_call_deferred (coerce cls) arrPtr len >>= \(err, res) ->
+           throwIfErr err >> fromGodotVariant res)
+
+bindFuncRef_call_func
+  = unsafePerformIO $
+      withCString "FuncRef" $
+        \ clsNamePtr ->
+          withCString "call_func" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindFuncRef_call_func #-}
+
+instance Method "call_func" GodotFuncRef ([Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls varargs =
+    withVariantArray
+      varargs
+      (\(arrPtr, len) ->
+         godot_method_bind_call bindFuncRef_call_func (coerce cls) arrPtr len >>= \(err, res) ->
+           throwIfErr err >> fromGodotVariant res)
+
+bindUndoRedo_add_do_method
+  = unsafePerformIO $
+      withCString "UndoRedo" $
+        \ clsNamePtr ->
+          withCString "add_do_method" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindUndoRedo_add_do_method #-}
+
+instance Method "add_do_method" GodotUndoRedo (GodotObject -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls arg1 arg2 varargs =
+    withVariantArray
+      ([toVariant arg1, toVariant arg2] ++ varargs)
+      (\(arrPtr, len) ->
+         godot_method_bind_call
+           bindUndoRedo_add_do_method
+           (coerce cls)
+           arrPtr
+           len >>= \(err, res) -> throwIfErr err >> fromGodotVariant res)
+
+bindUndoRedo_add_undo_method
+  = unsafePerformIO $
+      withCString "UndoRedo" $
+        \ clsNamePtr ->
+          withCString "add_undo_method" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindUndoRedo_add_undo_method #-}
+
+instance Method "add_undo_method" GodotUndoRedo (GodotObject -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls arg1 arg2 varargs =
+    withVariantArray
+      ([toVariant arg1, toVariant arg2] ++ varargs)
+      (\(arrPtr, len) ->
+         godot_method_bind_call
+           bindUndoRedo_add_undo_method
+           (coerce cls)
+           arrPtr
+           len >>= \(err, res) -> throwIfErr err >> fromGodotVariant res)
+
+bindNode_rpc
+  = unsafePerformIO $
+      withCString "Node" $
+        \ clsNamePtr ->
+          withCString "rpc" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindNode_rpc #-}
+
+instance Method "rpc" GodotNode (GodotString -> [Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls arg1 varargs =
+    withVariantArray
+      ([toVariant arg1] ++ varargs)
+      (\(arrPtr, len) ->
+         godot_method_bind_call bindNode_rpc (coerce cls) arrPtr len >>= \(err, res) ->
+           throwIfErr err >> fromGodotVariant res)
+
+bindNode_rpc_unreliable
+  = unsafePerformIO $
+      withCString "Node" $
+        \ clsNamePtr ->
+          withCString "rpc_unreliable" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindNode_rpc_unreliable #-}
+
+instance Method "rpc_unreliable" GodotNode (GodotString -> [Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls arg1 varargs =
+    withVariantArray
+      ([toVariant arg1] ++ varargs)
+      (\(arrPtr, len) ->
+         godot_method_bind_call bindNode_rpc_unreliable (coerce cls) arrPtr len >>= \(err, res) ->
+           throwIfErr err >> fromGodotVariant res)
+
+bindNode_rpc_id
+  = unsafePerformIO $
+      withCString "Node" $
+        \ clsNamePtr ->
+          withCString "rpc_id" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindNode_rpc_id #-}
+
+instance Method "rpc_id" GodotNode (Int -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls arg1 arg2 varargs =
+    withVariantArray
+      ([toVariant arg1, toVariant arg2] ++ varargs)
+      (\(arrPtr, len) ->
+         godot_method_bind_call bindNode_rpc_id (coerce cls) arrPtr len >>= \(err, res) ->
+           throwIfErr err >> fromGodotVariant res)
+
+bindNode_rpc_unreliable_id
+  = unsafePerformIO $
+      withCString "Node" $
+        \ clsNamePtr ->
+          withCString "rpc_unreliable_id" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindNode_rpc_unreliable_id #-}
+
+instance Method "rpc_unreliable_id" GodotNode (Int -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls arg1 arg2 varargs =
+    withVariantArray
+      ([toVariant arg1, toVariant arg2] ++ varargs)
+      (\(arrPtr, len) ->
+         godot_method_bind_call
+           bindNode_rpc_unreliable_id
+           (coerce cls)
+           arrPtr
+           len >>= \(err, res) -> throwIfErr err >> fromGodotVariant res)
+
+bindSceneTree_call_group_flags
+  = unsafePerformIO $
+      withCString "SceneTree" $
+        \ clsNamePtr ->
+          withCString "call_group_flags" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindSceneTree_call_group_flags #-}
+
+instance Method "call_group_flags" GodotSceneTree (Int -> GodotString -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls arg1 arg2 arg3 varargs =
+    withVariantArray
+      ([toVariant arg1, toVariant arg2, toVariant arg3] ++ varargs)
+      (\(arrPtr, len) ->
+         godot_method_bind_call
+           bindSceneTree_call_group_flags
+           (coerce cls)
+           arrPtr
+           len >>= \(err, res) -> throwIfErr err >> fromGodotVariant res)
+
+bindSceneTree_call_group
+  = unsafePerformIO $
+      withCString "SceneTree" $
+        \ clsNamePtr ->
+          withCString "call_group" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindSceneTree_call_group #-}
+
+instance Method "call_group" GodotSceneTree (GodotString -> GodotString -> [Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls arg1 arg2 varargs =
+    withVariantArray
+      ([toVariant arg1, toVariant arg2] ++ varargs)
+      (\(arrPtr, len) ->
+         godot_method_bind_call bindSceneTree_call_group (coerce cls) arrPtr len >>= \(err, res) ->
+           throwIfErr err >> fromGodotVariant res)
+
+bindNativeScript_new
+  = unsafePerformIO $
+      withCString "NativeScript" $
+        \ clsNamePtr ->
+          withCString "new" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindNativeScript_new #-}
+
+instance Method "new" GodotNativeScript ([Variant 'GodotTy] -> IO GodotObject) where
+  runMethod cls varargs =
+    withVariantArray
+      varargs
+      (\(arrPtr, len) ->
+         godot_method_bind_call bindNativeScript_new (coerce cls) arrPtr len >>= \(err, res) ->
+           throwIfErr err >> fromGodotVariant res)
+
+bindGDScriptFunctionState__signal_callback
+  = unsafePerformIO $
+      withCString "GDScriptFunctionState" $
+        \ clsNamePtr ->
+          withCString "_signal_callback" $
+            \ methodNamePtr ->
+              godot_method_bind_get_method clsNamePtr methodNamePtr
+
+{-# NOINLINE bindGDScriptFunctionState__signal_callback #-}
+
+instance Method "_signal_callback" GodotGDScriptFunctionState ([Variant 'GodotTy] -> IO GodotVariant) where
+  runMethod cls varargs =
+    withVariantArray
+      varargs
+      (\(arrPtr, len) ->
+         godot_method_bind_call
+           bindGDScriptFunctionState__signal_callback
+           (coerce cls)
+           arrPtr
+           len >>= \(err, res) -> throwIfErr err >> fromGodotVariant res)
diff --git a/src/Godot/Core/GodotARVRAnchor.hs b/src/Godot/Core/GodotARVRAnchor.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotARVRAnchor.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotARVRAnchor where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotARVRCamera.hs b/src/Godot/Core/GodotARVRCamera.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotARVRCamera.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotARVRCamera where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotARVRController.hs b/src/Godot/Core/GodotARVRController.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotARVRController.hs
@@ -0,0 +1,14 @@
+module Godot.Core.GodotARVRController where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+button_release :: Signal GodotARVRController
+button_release = Signal "button_release"
+
+button_pressed :: Signal GodotARVRController
+button_pressed = Signal "button_pressed"
diff --git a/src/Godot/Core/GodotARVRInterface.hs b/src/Godot/Core/GodotARVRInterface.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotARVRInterface.hs
@@ -0,0 +1,60 @@
+module Godot.Core.GodotARVRInterface where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ARVR_STEREO :: Int
+
+pattern ARVR_STEREO = 2
+
+pattern ARVR_INSUFFICIENT_FEATURES :: Int
+
+pattern ARVR_INSUFFICIENT_FEATURES = 2
+
+pattern ARVR_NOT_TRACKING :: Int
+
+pattern ARVR_NOT_TRACKING = 4
+
+pattern EYE_MONO :: Int
+
+pattern EYE_MONO = 0
+
+pattern EYE_LEFT :: Int
+
+pattern EYE_LEFT = 1
+
+pattern ARVR_EXCESSIVE_MOTION :: Int
+
+pattern ARVR_EXCESSIVE_MOTION = 1
+
+pattern ARVR_NORMAL_TRACKING :: Int
+
+pattern ARVR_NORMAL_TRACKING = 0
+
+pattern EYE_RIGHT :: Int
+
+pattern EYE_RIGHT = 2
+
+pattern ARVR_NONE :: Int
+
+pattern ARVR_NONE = 0
+
+pattern ARVR_EXTERNAL :: Int
+
+pattern ARVR_EXTERNAL = 8
+
+pattern ARVR_UNKNOWN_TRACKING :: Int
+
+pattern ARVR_UNKNOWN_TRACKING = 3
+
+pattern ARVR_AR :: Int
+
+pattern ARVR_AR = 4
+
+pattern ARVR_MONO :: Int
+
+pattern ARVR_MONO = 1
diff --git a/src/Godot/Core/GodotARVRInterfaceGDNative.hs b/src/Godot/Core/GodotARVRInterfaceGDNative.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotARVRInterfaceGDNative.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotARVRInterfaceGDNative where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotARVROrigin.hs b/src/Godot/Core/GodotARVROrigin.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotARVROrigin.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotARVROrigin where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotARVRPositionalTracker.hs b/src/Godot/Core/GodotARVRPositionalTracker.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotARVRPositionalTracker.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotARVRPositionalTracker where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern TRACKER_LEFT_HAND :: Int
+
+pattern TRACKER_LEFT_HAND = 1
+
+pattern TRACKER_RIGHT_HAND :: Int
+
+pattern TRACKER_RIGHT_HAND = 2
+
+pattern TRACKER_HAND_UNKNOWN :: Int
+
+pattern TRACKER_HAND_UNKNOWN = 0
diff --git a/src/Godot/Core/GodotARVRServer.hs b/src/Godot/Core/GodotARVRServer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotARVRServer.hs
@@ -0,0 +1,56 @@
+module Godot.Core.GodotARVRServer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern RESET_BUT_KEEP_TILT :: Int
+
+pattern RESET_BUT_KEEP_TILT = 1
+
+pattern RESET_FULL_ROTATION :: Int
+
+pattern RESET_FULL_ROTATION = 0
+
+pattern TRACKER_CONTROLLER :: Int
+
+pattern TRACKER_CONTROLLER = 1
+
+pattern TRACKER_UNKNOWN :: Int
+
+pattern TRACKER_UNKNOWN = 128
+
+pattern TRACKER_ANY_KNOWN :: Int
+
+pattern TRACKER_ANY_KNOWN = 127
+
+pattern DONT_RESET_ROTATION :: Int
+
+pattern DONT_RESET_ROTATION = 2
+
+pattern TRACKER_BASESTATION :: Int
+
+pattern TRACKER_BASESTATION = 2
+
+pattern TRACKER_ANCHOR :: Int
+
+pattern TRACKER_ANCHOR = 4
+
+pattern TRACKER_ANY :: Int
+
+pattern TRACKER_ANY = 255
+
+tracker_removed :: Signal GodotARVRServer
+tracker_removed = Signal "tracker_removed"
+
+tracker_added :: Signal GodotARVRServer
+tracker_added = Signal "tracker_added"
+
+interface_removed :: Signal GodotARVRServer
+interface_removed = Signal "interface_removed"
+
+interface_added :: Signal GodotARVRServer
+interface_added = Signal "interface_added"
diff --git a/src/Godot/Core/GodotAStar.hs b/src/Godot/Core/GodotAStar.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAStar.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAStar where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAcceptDialog.hs b/src/Godot/Core/GodotAcceptDialog.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAcceptDialog.hs
@@ -0,0 +1,14 @@
+module Godot.Core.GodotAcceptDialog where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+confirmed :: Signal GodotAcceptDialog
+confirmed = Signal "confirmed"
+
+custom_action :: Signal GodotAcceptDialog
+custom_action = Signal "custom_action"
diff --git a/src/Godot/Core/GodotAnimatedSprite.hs b/src/Godot/Core/GodotAnimatedSprite.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimatedSprite.hs
@@ -0,0 +1,14 @@
+module Godot.Core.GodotAnimatedSprite where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+frame_changed :: Signal GodotAnimatedSprite
+frame_changed = Signal "frame_changed"
+
+animation_finished :: Signal GodotAnimatedSprite
+animation_finished = Signal "animation_finished"
diff --git a/src/Godot/Core/GodotAnimatedSprite3D.hs b/src/Godot/Core/GodotAnimatedSprite3D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimatedSprite3D.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotAnimatedSprite3D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+frame_changed :: Signal GodotAnimatedSprite3D
+frame_changed = Signal "frame_changed"
diff --git a/src/Godot/Core/GodotAnimatedTexture.hs b/src/Godot/Core/GodotAnimatedTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimatedTexture.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimatedTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimation.hs b/src/Godot/Core/GodotAnimation.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimation.hs
@@ -0,0 +1,60 @@
+module Godot.Core.GodotAnimation where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern TYPE_BEZIER :: Int
+
+pattern TYPE_BEZIER = 3
+
+pattern INTERPOLATION_NEAREST :: Int
+
+pattern INTERPOLATION_NEAREST = 0
+
+pattern UPDATE_DISCRETE :: Int
+
+pattern UPDATE_DISCRETE = 1
+
+pattern INTERPOLATION_LINEAR :: Int
+
+pattern INTERPOLATION_LINEAR = 1
+
+pattern TYPE_VALUE :: Int
+
+pattern TYPE_VALUE = 0
+
+pattern UPDATE_CAPTURE :: Int
+
+pattern UPDATE_CAPTURE = 3
+
+pattern TYPE_METHOD :: Int
+
+pattern TYPE_METHOD = 2
+
+pattern UPDATE_CONTINUOUS :: Int
+
+pattern UPDATE_CONTINUOUS = 0
+
+pattern INTERPOLATION_CUBIC :: Int
+
+pattern INTERPOLATION_CUBIC = 2
+
+pattern TYPE_TRANSFORM :: Int
+
+pattern TYPE_TRANSFORM = 1
+
+pattern UPDATE_TRIGGER :: Int
+
+pattern UPDATE_TRIGGER = 2
+
+pattern TYPE_AUDIO :: Int
+
+pattern TYPE_AUDIO = 4
+
+pattern TYPE_ANIMATION :: Int
+
+pattern TYPE_ANIMATION = 5
diff --git a/src/Godot/Core/GodotAnimationNode.hs b/src/Godot/Core/GodotAnimationNode.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNode.hs
@@ -0,0 +1,30 @@
+module Godot.Core.GodotAnimationNode where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FILTER_IGNORE :: Int
+
+pattern FILTER_IGNORE = 0
+
+pattern FILTER_BLEND :: Int
+
+pattern FILTER_BLEND = 3
+
+pattern FILTER_PASS :: Int
+
+pattern FILTER_PASS = 1
+
+pattern FILTER_STOP :: Int
+
+pattern FILTER_STOP = 2
+
+removed_from_graph :: Signal GodotAnimationNode
+removed_from_graph = Signal "removed_from_graph"
+
+tree_changed :: Signal GodotAnimationNode
+tree_changed = Signal "tree_changed"
diff --git a/src/Godot/Core/GodotAnimationNodeAdd2.hs b/src/Godot/Core/GodotAnimationNodeAdd2.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeAdd2.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeAdd2 where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationNodeAdd3.hs b/src/Godot/Core/GodotAnimationNodeAdd3.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeAdd3.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeAdd3 where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationNodeAnimation.hs b/src/Godot/Core/GodotAnimationNodeAnimation.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeAnimation.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeAnimation where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationNodeBlend2.hs b/src/Godot/Core/GodotAnimationNodeBlend2.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeBlend2.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeBlend2 where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationNodeBlend3.hs b/src/Godot/Core/GodotAnimationNodeBlend3.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeBlend3.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeBlend3 where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationNodeBlendSpace1D.hs b/src/Godot/Core/GodotAnimationNodeBlendSpace1D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeBlendSpace1D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeBlendSpace1D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationNodeBlendSpace2D.hs b/src/Godot/Core/GodotAnimationNodeBlendSpace2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeBlendSpace2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeBlendSpace2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationNodeBlendTree.hs b/src/Godot/Core/GodotAnimationNodeBlendTree.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeBlendTree.hs
@@ -0,0 +1,32 @@
+module Godot.Core.GodotAnimationNodeBlendTree where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CONNECTION_ERROR_NO_INPUT_INDEX :: Int
+
+pattern CONNECTION_ERROR_NO_INPUT_INDEX = 2
+
+pattern CONNECTION_ERROR_NO_OUTPUT :: Int
+
+pattern CONNECTION_ERROR_NO_OUTPUT = 3
+
+pattern CONNECTION_OK :: Int
+
+pattern CONNECTION_OK = 0
+
+pattern CONNECTION_ERROR_SAME_NODE :: Int
+
+pattern CONNECTION_ERROR_SAME_NODE = 4
+
+pattern CONNECTION_ERROR_CONNECTION_EXISTS :: Int
+
+pattern CONNECTION_ERROR_CONNECTION_EXISTS = 5
+
+pattern CONNECTION_ERROR_NO_INPUT :: Int
+
+pattern CONNECTION_ERROR_NO_INPUT = 1
diff --git a/src/Godot/Core/GodotAnimationNodeOneShot.hs b/src/Godot/Core/GodotAnimationNodeOneShot.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeOneShot.hs
@@ -0,0 +1,16 @@
+module Godot.Core.GodotAnimationNodeOneShot where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MIX_MODE_ADD :: Int
+
+pattern MIX_MODE_ADD = 1
+
+pattern MIX_MODE_BLEND :: Int
+
+pattern MIX_MODE_BLEND = 0
diff --git a/src/Godot/Core/GodotAnimationNodeOutput.hs b/src/Godot/Core/GodotAnimationNodeOutput.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeOutput.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeOutput where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationNodeStateMachine.hs b/src/Godot/Core/GodotAnimationNodeStateMachine.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeStateMachine.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeStateMachine where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationNodeStateMachinePlayback.hs b/src/Godot/Core/GodotAnimationNodeStateMachinePlayback.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeStateMachinePlayback.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeStateMachinePlayback where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationNodeStateMachineTransition.hs b/src/Godot/Core/GodotAnimationNodeStateMachineTransition.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeStateMachineTransition.hs
@@ -0,0 +1,24 @@
+module Godot.Core.GodotAnimationNodeStateMachineTransition where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SWITCH_MODE_IMMEDIATE :: Int
+
+pattern SWITCH_MODE_IMMEDIATE = 0
+
+pattern SWITCH_MODE_SYNC :: Int
+
+pattern SWITCH_MODE_SYNC = 1
+
+pattern SWITCH_MODE_AT_END :: Int
+
+pattern SWITCH_MODE_AT_END = 2
+
+advance_condition_changed ::
+                          Signal GodotAnimationNodeStateMachineTransition
+advance_condition_changed = Signal "advance_condition_changed"
diff --git a/src/Godot/Core/GodotAnimationNodeTimeScale.hs b/src/Godot/Core/GodotAnimationNodeTimeScale.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeTimeScale.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeTimeScale where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationNodeTimeSeek.hs b/src/Godot/Core/GodotAnimationNodeTimeSeek.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeTimeSeek.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeTimeSeek where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationNodeTransition.hs b/src/Godot/Core/GodotAnimationNodeTransition.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationNodeTransition.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationNodeTransition where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationPlayer.hs b/src/Godot/Core/GodotAnimationPlayer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationPlayer.hs
@@ -0,0 +1,32 @@
+module Godot.Core.GodotAnimationPlayer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ANIMATION_PROCESS_MANUAL :: Int
+
+pattern ANIMATION_PROCESS_MANUAL = 2
+
+pattern ANIMATION_PROCESS_PHYSICS :: Int
+
+pattern ANIMATION_PROCESS_PHYSICS = 0
+
+pattern ANIMATION_PROCESS_IDLE :: Int
+
+pattern ANIMATION_PROCESS_IDLE = 1
+
+caches_cleared :: Signal GodotAnimationPlayer
+caches_cleared = Signal "caches_cleared"
+
+animation_started :: Signal GodotAnimationPlayer
+animation_started = Signal "animation_started"
+
+animation_changed :: Signal GodotAnimationPlayer
+animation_changed = Signal "animation_changed"
+
+animation_finished :: Signal GodotAnimationPlayer
+animation_finished = Signal "animation_finished"
diff --git a/src/Godot/Core/GodotAnimationRootNode.hs b/src/Godot/Core/GodotAnimationRootNode.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationRootNode.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAnimationRootNode where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAnimationTree.hs b/src/Godot/Core/GodotAnimationTree.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationTree.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotAnimationTree where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ANIMATION_PROCESS_MANUAL :: Int
+
+pattern ANIMATION_PROCESS_MANUAL = 2
+
+pattern ANIMATION_PROCESS_PHYSICS :: Int
+
+pattern ANIMATION_PROCESS_PHYSICS = 0
+
+pattern ANIMATION_PROCESS_IDLE :: Int
+
+pattern ANIMATION_PROCESS_IDLE = 1
diff --git a/src/Godot/Core/GodotAnimationTreePlayer.hs b/src/Godot/Core/GodotAnimationTreePlayer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAnimationTreePlayer.hs
@@ -0,0 +1,56 @@
+module Godot.Core.GodotAnimationTreePlayer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern NODE_TIMESEEK :: Int
+
+pattern NODE_TIMESEEK = 8
+
+pattern NODE_OUTPUT :: Int
+
+pattern NODE_OUTPUT = 0
+
+pattern NODE_ANIMATION :: Int
+
+pattern NODE_ANIMATION = 1
+
+pattern NODE_BLEND2 :: Int
+
+pattern NODE_BLEND2 = 4
+
+pattern NODE_TIMESCALE :: Int
+
+pattern NODE_TIMESCALE = 7
+
+pattern NODE_BLEND4 :: Int
+
+pattern NODE_BLEND4 = 6
+
+pattern NODE_BLEND3 :: Int
+
+pattern NODE_BLEND3 = 5
+
+pattern NODE_TRANSITION :: Int
+
+pattern NODE_TRANSITION = 9
+
+pattern NODE_MIX :: Int
+
+pattern NODE_MIX = 3
+
+pattern NODE_ONESHOT :: Int
+
+pattern NODE_ONESHOT = 2
+
+pattern ANIMATION_PROCESS_PHYSICS :: Int
+
+pattern ANIMATION_PROCESS_PHYSICS = 0
+
+pattern ANIMATION_PROCESS_IDLE :: Int
+
+pattern ANIMATION_PROCESS_IDLE = 1
diff --git a/src/Godot/Core/GodotArea.hs b/src/Godot/Core/GodotArea.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotArea.hs
@@ -0,0 +1,52 @@
+module Godot.Core.GodotArea where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SPACE_OVERRIDE_REPLACE :: Int
+
+pattern SPACE_OVERRIDE_REPLACE = 3
+
+pattern SPACE_OVERRIDE_DISABLED :: Int
+
+pattern SPACE_OVERRIDE_DISABLED = 0
+
+pattern SPACE_OVERRIDE_COMBINE_REPLACE :: Int
+
+pattern SPACE_OVERRIDE_COMBINE_REPLACE = 2
+
+pattern SPACE_OVERRIDE_REPLACE_COMBINE :: Int
+
+pattern SPACE_OVERRIDE_REPLACE_COMBINE = 4
+
+pattern SPACE_OVERRIDE_COMBINE :: Int
+
+pattern SPACE_OVERRIDE_COMBINE = 1
+
+area_exited :: Signal GodotArea
+area_exited = Signal "area_exited"
+
+area_shape_exited :: Signal GodotArea
+area_shape_exited = Signal "area_shape_exited"
+
+body_entered :: Signal GodotArea
+body_entered = Signal "body_entered"
+
+body_shape_entered :: Signal GodotArea
+body_shape_entered = Signal "body_shape_entered"
+
+area_entered :: Signal GodotArea
+area_entered = Signal "area_entered"
+
+area_shape_entered :: Signal GodotArea
+area_shape_entered = Signal "area_shape_entered"
+
+body_exited :: Signal GodotArea
+body_exited = Signal "body_exited"
+
+body_shape_exited :: Signal GodotArea
+body_shape_exited = Signal "body_shape_exited"
diff --git a/src/Godot/Core/GodotArea2D.hs b/src/Godot/Core/GodotArea2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotArea2D.hs
@@ -0,0 +1,52 @@
+module Godot.Core.GodotArea2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SPACE_OVERRIDE_REPLACE :: Int
+
+pattern SPACE_OVERRIDE_REPLACE = 3
+
+pattern SPACE_OVERRIDE_DISABLED :: Int
+
+pattern SPACE_OVERRIDE_DISABLED = 0
+
+pattern SPACE_OVERRIDE_COMBINE_REPLACE :: Int
+
+pattern SPACE_OVERRIDE_COMBINE_REPLACE = 2
+
+pattern SPACE_OVERRIDE_REPLACE_COMBINE :: Int
+
+pattern SPACE_OVERRIDE_REPLACE_COMBINE = 4
+
+pattern SPACE_OVERRIDE_COMBINE :: Int
+
+pattern SPACE_OVERRIDE_COMBINE = 1
+
+area_exited :: Signal GodotArea2D
+area_exited = Signal "area_exited"
+
+area_shape_exited :: Signal GodotArea2D
+area_shape_exited = Signal "area_shape_exited"
+
+body_entered :: Signal GodotArea2D
+body_entered = Signal "body_entered"
+
+body_shape_entered :: Signal GodotArea2D
+body_shape_entered = Signal "body_shape_entered"
+
+area_entered :: Signal GodotArea2D
+area_entered = Signal "area_entered"
+
+area_shape_entered :: Signal GodotArea2D
+area_shape_entered = Signal "area_shape_entered"
+
+body_exited :: Signal GodotArea2D
+body_exited = Signal "body_exited"
+
+body_shape_exited :: Signal GodotArea2D
+body_shape_exited = Signal "body_shape_exited"
diff --git a/src/Godot/Core/GodotArrayMesh.hs b/src/Godot/Core/GodotArrayMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotArrayMesh.hs
@@ -0,0 +1,92 @@
+module Godot.Core.GodotArrayMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ARRAY_FORMAT_INDEX :: Int
+
+pattern ARRAY_FORMAT_INDEX = 256
+
+pattern ARRAY_FORMAT_COLOR :: Int
+
+pattern ARRAY_FORMAT_COLOR = 8
+
+pattern ARRAY_FORMAT_TEX_UV :: Int
+
+pattern ARRAY_FORMAT_TEX_UV = 16
+
+pattern ARRAY_FORMAT_VERTEX :: Int
+
+pattern ARRAY_FORMAT_VERTEX = 1
+
+pattern ARRAY_MAX :: Int
+
+pattern ARRAY_MAX = 9
+
+pattern ARRAY_NORMAL :: Int
+
+pattern ARRAY_NORMAL = 1
+
+pattern ARRAY_FORMAT_TEX_UV2 :: Int
+
+pattern ARRAY_FORMAT_TEX_UV2 = 32
+
+pattern ARRAY_INDEX :: Int
+
+pattern ARRAY_INDEX = 8
+
+pattern ARRAY_COLOR :: Int
+
+pattern ARRAY_COLOR = 3
+
+pattern ARRAY_TEX_UV :: Int
+
+pattern ARRAY_TEX_UV = 4
+
+pattern ARRAY_FORMAT_NORMAL :: Int
+
+pattern ARRAY_FORMAT_NORMAL = 2
+
+pattern ARRAY_TEX_UV2 :: Int
+
+pattern ARRAY_TEX_UV2 = 5
+
+pattern ARRAY_FORMAT_BONES :: Int
+
+pattern ARRAY_FORMAT_BONES = 64
+
+pattern ARRAY_WEIGHTS_SIZE :: Int
+
+pattern ARRAY_WEIGHTS_SIZE = 4
+
+pattern ARRAY_WEIGHTS :: Int
+
+pattern ARRAY_WEIGHTS = 7
+
+pattern ARRAY_TANGENT :: Int
+
+pattern ARRAY_TANGENT = 2
+
+pattern ARRAY_BONES :: Int
+
+pattern ARRAY_BONES = 6
+
+pattern NO_INDEX_ARRAY :: Int
+
+pattern NO_INDEX_ARRAY = -1
+
+pattern ARRAY_VERTEX :: Int
+
+pattern ARRAY_VERTEX = 0
+
+pattern ARRAY_FORMAT_WEIGHTS :: Int
+
+pattern ARRAY_FORMAT_WEIGHTS = 128
+
+pattern ARRAY_FORMAT_TANGENT :: Int
+
+pattern ARRAY_FORMAT_TANGENT = 4
diff --git a/src/Godot/Core/GodotAtlasTexture.hs b/src/Godot/Core/GodotAtlasTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAtlasTexture.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAtlasTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioBusLayout.hs b/src/Godot/Core/GodotAudioBusLayout.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioBusLayout.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioBusLayout where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffect.hs b/src/Godot/Core/GodotAudioEffect.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffect.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffect where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectAmplify.hs b/src/Godot/Core/GodotAudioEffectAmplify.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectAmplify.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectAmplify where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectBandLimitFilter.hs b/src/Godot/Core/GodotAudioEffectBandLimitFilter.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectBandLimitFilter.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectBandLimitFilter where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectBandPassFilter.hs b/src/Godot/Core/GodotAudioEffectBandPassFilter.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectBandPassFilter.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectBandPassFilter where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectChorus.hs b/src/Godot/Core/GodotAudioEffectChorus.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectChorus.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectChorus where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectCompressor.hs b/src/Godot/Core/GodotAudioEffectCompressor.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectCompressor.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectCompressor where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectDelay.hs b/src/Godot/Core/GodotAudioEffectDelay.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectDelay.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectDelay where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectDistortion.hs b/src/Godot/Core/GodotAudioEffectDistortion.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectDistortion.hs
@@ -0,0 +1,28 @@
+module Godot.Core.GodotAudioEffectDistortion where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MODE_CLIP :: Int
+
+pattern MODE_CLIP = 0
+
+pattern MODE_LOFI :: Int
+
+pattern MODE_LOFI = 2
+
+pattern MODE_OVERDRIVE :: Int
+
+pattern MODE_OVERDRIVE = 3
+
+pattern MODE_WAVESHAPE :: Int
+
+pattern MODE_WAVESHAPE = 4
+
+pattern MODE_ATAN :: Int
+
+pattern MODE_ATAN = 1
diff --git a/src/Godot/Core/GodotAudioEffectEQ.hs b/src/Godot/Core/GodotAudioEffectEQ.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectEQ.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectEQ where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectEQ10.hs b/src/Godot/Core/GodotAudioEffectEQ10.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectEQ10.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectEQ10 where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectEQ21.hs b/src/Godot/Core/GodotAudioEffectEQ21.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectEQ21.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectEQ21 where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectEQ6.hs b/src/Godot/Core/GodotAudioEffectEQ6.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectEQ6.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectEQ6 where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectFilter.hs b/src/Godot/Core/GodotAudioEffectFilter.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectFilter.hs
@@ -0,0 +1,24 @@
+module Godot.Core.GodotAudioEffectFilter where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FILTER_24DB :: Int
+
+pattern FILTER_24DB = 3
+
+pattern FILTER_12DB :: Int
+
+pattern FILTER_12DB = 1
+
+pattern FILTER_18DB :: Int
+
+pattern FILTER_18DB = 2
+
+pattern FILTER_6DB :: Int
+
+pattern FILTER_6DB = 0
diff --git a/src/Godot/Core/GodotAudioEffectHighPassFilter.hs b/src/Godot/Core/GodotAudioEffectHighPassFilter.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectHighPassFilter.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectHighPassFilter where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectHighShelfFilter.hs b/src/Godot/Core/GodotAudioEffectHighShelfFilter.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectHighShelfFilter.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectHighShelfFilter where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectLimiter.hs b/src/Godot/Core/GodotAudioEffectLimiter.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectLimiter.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectLimiter where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectLowPassFilter.hs b/src/Godot/Core/GodotAudioEffectLowPassFilter.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectLowPassFilter.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectLowPassFilter where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectLowShelfFilter.hs b/src/Godot/Core/GodotAudioEffectLowShelfFilter.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectLowShelfFilter.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectLowShelfFilter where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectNotchFilter.hs b/src/Godot/Core/GodotAudioEffectNotchFilter.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectNotchFilter.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectNotchFilter where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectPanner.hs b/src/Godot/Core/GodotAudioEffectPanner.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectPanner.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectPanner where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectPhaser.hs b/src/Godot/Core/GodotAudioEffectPhaser.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectPhaser.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectPhaser where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectPitchShift.hs b/src/Godot/Core/GodotAudioEffectPitchShift.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectPitchShift.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectPitchShift where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectRecord.hs b/src/Godot/Core/GodotAudioEffectRecord.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectRecord.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectRecord where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectReverb.hs b/src/Godot/Core/GodotAudioEffectReverb.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectReverb.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectReverb where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioEffectStereoEnhance.hs b/src/Godot/Core/GodotAudioEffectStereoEnhance.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioEffectStereoEnhance.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioEffectStereoEnhance where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioServer.hs b/src/Godot/Core/GodotAudioServer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioServer.hs
@@ -0,0 +1,27 @@
+module Godot.Core.GodotAudioServer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SPEAKER_SURROUND_71 :: Int
+
+pattern SPEAKER_SURROUND_71 = 3
+
+pattern SPEAKER_SURROUND_31 :: Int
+
+pattern SPEAKER_SURROUND_31 = 1
+
+pattern SPEAKER_MODE_STEREO :: Int
+
+pattern SPEAKER_MODE_STEREO = 0
+
+pattern SPEAKER_SURROUND_51 :: Int
+
+pattern SPEAKER_SURROUND_51 = 2
+
+bus_layout_changed :: Signal GodotAudioServer
+bus_layout_changed = Signal "bus_layout_changed"
diff --git a/src/Godot/Core/GodotAudioStream.hs b/src/Godot/Core/GodotAudioStream.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioStream.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioStream where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioStreamMicrophone.hs b/src/Godot/Core/GodotAudioStreamMicrophone.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioStreamMicrophone.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioStreamMicrophone where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioStreamOGGVorbis.hs b/src/Godot/Core/GodotAudioStreamOGGVorbis.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioStreamOGGVorbis.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioStreamOGGVorbis where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioStreamPlayback.hs b/src/Godot/Core/GodotAudioStreamPlayback.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioStreamPlayback.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioStreamPlayback where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioStreamPlayer.hs b/src/Godot/Core/GodotAudioStreamPlayer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioStreamPlayer.hs
@@ -0,0 +1,23 @@
+module Godot.Core.GodotAudioStreamPlayer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MIX_TARGET_SURROUND :: Int
+
+pattern MIX_TARGET_SURROUND = 1
+
+pattern MIX_TARGET_STEREO :: Int
+
+pattern MIX_TARGET_STEREO = 0
+
+pattern MIX_TARGET_CENTER :: Int
+
+pattern MIX_TARGET_CENTER = 2
+
+finished :: Signal GodotAudioStreamPlayer
+finished = Signal "finished"
diff --git a/src/Godot/Core/GodotAudioStreamPlayer2D.hs b/src/Godot/Core/GodotAudioStreamPlayer2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioStreamPlayer2D.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotAudioStreamPlayer2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+finished :: Signal GodotAudioStreamPlayer2D
+finished = Signal "finished"
diff --git a/src/Godot/Core/GodotAudioStreamPlayer3D.hs b/src/Godot/Core/GodotAudioStreamPlayer3D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioStreamPlayer3D.hs
@@ -0,0 +1,43 @@
+module Godot.Core.GodotAudioStreamPlayer3D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ATTENUATION_INVERSE_SQUARE_DISTANCE :: Int
+
+pattern ATTENUATION_INVERSE_SQUARE_DISTANCE = 1
+
+pattern ATTENUATION_INVERSE_DISTANCE :: Int
+
+pattern ATTENUATION_INVERSE_DISTANCE = 0
+
+pattern DOPPLER_TRACKING_PHYSICS_STEP :: Int
+
+pattern DOPPLER_TRACKING_PHYSICS_STEP = 2
+
+pattern DOPPLER_TRACKING_DISABLED :: Int
+
+pattern DOPPLER_TRACKING_DISABLED = 0
+
+pattern OUT_OF_RANGE_PAUSE :: Int
+
+pattern OUT_OF_RANGE_PAUSE = 1
+
+pattern ATTENUATION_LOGARITHMIC :: Int
+
+pattern ATTENUATION_LOGARITHMIC = 2
+
+pattern OUT_OF_RANGE_MIX :: Int
+
+pattern OUT_OF_RANGE_MIX = 0
+
+pattern DOPPLER_TRACKING_IDLE_STEP :: Int
+
+pattern DOPPLER_TRACKING_IDLE_STEP = 1
+
+finished :: Signal GodotAudioStreamPlayer3D
+finished = Signal "finished"
diff --git a/src/Godot/Core/GodotAudioStreamRandomPitch.hs b/src/Godot/Core/GodotAudioStreamRandomPitch.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioStreamRandomPitch.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotAudioStreamRandomPitch where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotAudioStreamSample.hs b/src/Godot/Core/GodotAudioStreamSample.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotAudioStreamSample.hs
@@ -0,0 +1,32 @@
+module Godot.Core.GodotAudioStreamSample where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FORMAT_8_BITS :: Int
+
+pattern FORMAT_8_BITS = 0
+
+pattern LOOP_PING_PONG :: Int
+
+pattern LOOP_PING_PONG = 2
+
+pattern LOOP_DISABLED :: Int
+
+pattern LOOP_DISABLED = 0
+
+pattern FORMAT_IMA_ADPCM :: Int
+
+pattern FORMAT_IMA_ADPCM = 2
+
+pattern LOOP_FORWARD :: Int
+
+pattern LOOP_FORWARD = 1
+
+pattern FORMAT_16_BITS :: Int
+
+pattern FORMAT_16_BITS = 1
diff --git a/src/Godot/Core/GodotBackBufferCopy.hs b/src/Godot/Core/GodotBackBufferCopy.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotBackBufferCopy.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotBackBufferCopy where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern COPY_MODE_VIEWPORT :: Int
+
+pattern COPY_MODE_VIEWPORT = 2
+
+pattern COPY_MODE_RECT :: Int
+
+pattern COPY_MODE_RECT = 1
+
+pattern COPY_MODE_DISABLED :: Int
+
+pattern COPY_MODE_DISABLED = 0
diff --git a/src/Godot/Core/GodotBakedLightmap.hs b/src/Godot/Core/GodotBakedLightmap.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotBakedLightmap.hs
@@ -0,0 +1,48 @@
+module Godot.Core.GodotBakedLightmap where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern BAKE_QUALITY_LOW :: Int
+
+pattern BAKE_QUALITY_LOW = 0
+
+pattern BAKE_QUALITY_MEDIUM :: Int
+
+pattern BAKE_QUALITY_MEDIUM = 1
+
+pattern BAKE_ERROR_CANT_CREATE_IMAGE :: Int
+
+pattern BAKE_ERROR_CANT_CREATE_IMAGE = 3
+
+pattern BAKE_ERROR_NO_MESHES :: Int
+
+pattern BAKE_ERROR_NO_MESHES = 2
+
+pattern BAKE_ERROR_OK :: Int
+
+pattern BAKE_ERROR_OK = 0
+
+pattern BAKE_MODE_CONE_TRACE :: Int
+
+pattern BAKE_MODE_CONE_TRACE = 0
+
+pattern BAKE_MODE_RAY_TRACE :: Int
+
+pattern BAKE_MODE_RAY_TRACE = 1
+
+pattern BAKE_ERROR_NO_SAVE_PATH :: Int
+
+pattern BAKE_ERROR_NO_SAVE_PATH = 1
+
+pattern BAKE_ERROR_USER_ABORTED :: Int
+
+pattern BAKE_ERROR_USER_ABORTED = 4
+
+pattern BAKE_QUALITY_HIGH :: Int
+
+pattern BAKE_QUALITY_HIGH = 2
diff --git a/src/Godot/Core/GodotBakedLightmapData.hs b/src/Godot/Core/GodotBakedLightmapData.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotBakedLightmapData.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotBakedLightmapData where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotBaseButton.hs b/src/Godot/Core/GodotBaseButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotBaseButton.hs
@@ -0,0 +1,48 @@
+module Godot.Core.GodotBaseButton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern DRAW_NORMAL :: Int
+
+pattern DRAW_NORMAL = 0
+
+pattern DRAW_DISABLED :: Int
+
+pattern DRAW_DISABLED = 3
+
+pattern ACTION_MODE_BUTTON_RELEASE :: Int
+
+pattern ACTION_MODE_BUTTON_RELEASE = 1
+
+pattern DRAW_HOVER_PRESSED :: Int
+
+pattern DRAW_HOVER_PRESSED = 4
+
+pattern ACTION_MODE_BUTTON_PRESS :: Int
+
+pattern ACTION_MODE_BUTTON_PRESS = 0
+
+pattern DRAW_PRESSED :: Int
+
+pattern DRAW_PRESSED = 1
+
+pattern DRAW_HOVER :: Int
+
+pattern DRAW_HOVER = 2
+
+button_down :: Signal GodotBaseButton
+button_down = Signal "button_down"
+
+toggled :: Signal GodotBaseButton
+toggled = Signal "toggled"
+
+pressed :: Signal GodotBaseButton
+pressed = Signal "pressed"
+
+button_up :: Signal GodotBaseButton
+button_up = Signal "button_up"
diff --git a/src/Godot/Core/GodotBitMap.hs b/src/Godot/Core/GodotBitMap.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotBitMap.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotBitMap where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotBitmapFont.hs b/src/Godot/Core/GodotBitmapFont.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotBitmapFont.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotBitmapFont where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotBone2D.hs b/src/Godot/Core/GodotBone2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotBone2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotBone2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotBoneAttachment.hs b/src/Godot/Core/GodotBoneAttachment.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotBoneAttachment.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotBoneAttachment where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotBoxContainer.hs b/src/Godot/Core/GodotBoxContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotBoxContainer.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotBoxContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ALIGN_END :: Int
+
+pattern ALIGN_END = 2
+
+pattern ALIGN_BEGIN :: Int
+
+pattern ALIGN_BEGIN = 0
+
+pattern ALIGN_CENTER :: Int
+
+pattern ALIGN_CENTER = 1
diff --git a/src/Godot/Core/GodotBoxShape.hs b/src/Godot/Core/GodotBoxShape.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotBoxShape.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotBoxShape where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotBulletPhysicsDirectBodyState.hs b/src/Godot/Core/GodotBulletPhysicsDirectBodyState.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotBulletPhysicsDirectBodyState.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotBulletPhysicsDirectBodyState where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotBulletPhysicsServer.hs b/src/Godot/Core/GodotBulletPhysicsServer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotBulletPhysicsServer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotBulletPhysicsServer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotButton.hs b/src/Godot/Core/GodotButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotButton.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotButton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ALIGN_RIGHT :: Int
+
+pattern ALIGN_RIGHT = 2
+
+pattern ALIGN_LEFT :: Int
+
+pattern ALIGN_LEFT = 0
+
+pattern ALIGN_CENTER :: Int
+
+pattern ALIGN_CENTER = 1
diff --git a/src/Godot/Core/GodotButtonGroup.hs b/src/Godot/Core/GodotButtonGroup.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotButtonGroup.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotButtonGroup where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCPUParticles.hs b/src/Godot/Core/GodotCPUParticles.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCPUParticles.hs
@@ -0,0 +1,100 @@
+module Godot.Core.GodotCPUParticles where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FLAG_ALIGN_Y_TO_VELOCITY :: Int
+
+pattern FLAG_ALIGN_Y_TO_VELOCITY = 0
+
+pattern PARAM_RADIAL_ACCEL :: Int
+
+pattern PARAM_RADIAL_ACCEL = 3
+
+pattern FLAG_ROTATE_Y :: Int
+
+pattern FLAG_ROTATE_Y = 1
+
+pattern EMISSION_SHAPE_SPHERE :: Int
+
+pattern EMISSION_SHAPE_SPHERE = 1
+
+pattern PARAM_ANGULAR_VELOCITY :: Int
+
+pattern PARAM_ANGULAR_VELOCITY = 1
+
+pattern PARAM_TANGENTIAL_ACCEL :: Int
+
+pattern PARAM_TANGENTIAL_ACCEL = 4
+
+pattern PARAM_ANIM_SPEED :: Int
+
+pattern PARAM_ANIM_SPEED = 9
+
+pattern EMISSION_SHAPE_BOX :: Int
+
+pattern EMISSION_SHAPE_BOX = 2
+
+pattern EMISSION_SHAPE_POINTS :: Int
+
+pattern EMISSION_SHAPE_POINTS = 3
+
+pattern PARAM_MAX :: Int
+
+pattern PARAM_MAX = 11
+
+pattern PARAM_INITIAL_LINEAR_VELOCITY :: Int
+
+pattern PARAM_INITIAL_LINEAR_VELOCITY = 0
+
+pattern FLAG_MAX :: Int
+
+pattern FLAG_MAX = 4
+
+pattern PARAM_LINEAR_ACCEL :: Int
+
+pattern PARAM_LINEAR_ACCEL = 2
+
+pattern EMISSION_SHAPE_DIRECTED_POINTS :: Int
+
+pattern EMISSION_SHAPE_DIRECTED_POINTS = 4
+
+pattern EMISSION_SHAPE_POINT :: Int
+
+pattern EMISSION_SHAPE_POINT = 0
+
+pattern DRAW_ORDER_LIFETIME :: Int
+
+pattern DRAW_ORDER_LIFETIME = 1
+
+pattern PARAM_SCALE :: Int
+
+pattern PARAM_SCALE = 7
+
+pattern DRAW_ORDER_INDEX :: Int
+
+pattern DRAW_ORDER_INDEX = 0
+
+pattern PARAM_DAMPING :: Int
+
+pattern PARAM_DAMPING = 5
+
+pattern PARAM_HUE_VARIATION :: Int
+
+pattern PARAM_HUE_VARIATION = 8
+
+pattern PARAM_ANIM_OFFSET :: Int
+
+pattern PARAM_ANIM_OFFSET = 10
+
+pattern PARAM_ANGLE :: Int
+
+pattern PARAM_ANGLE = 6
+
+pattern DRAW_ORDER_VIEW_DEPTH :: Int
+
+pattern DRAW_ORDER_VIEW_DEPTH = 2
diff --git a/src/Godot/Core/GodotCPUParticles2D.hs b/src/Godot/Core/GodotCPUParticles2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCPUParticles2D.hs
@@ -0,0 +1,96 @@
+module Godot.Core.GodotCPUParticles2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FLAG_ALIGN_Y_TO_VELOCITY :: Int
+
+pattern FLAG_ALIGN_Y_TO_VELOCITY = 0
+
+pattern PARAM_RADIAL_ACCEL :: Int
+
+pattern PARAM_RADIAL_ACCEL = 4
+
+pattern EMISSION_SHAPE_CIRCLE :: Int
+
+pattern EMISSION_SHAPE_CIRCLE = 1
+
+pattern PARAM_ANGULAR_VELOCITY :: Int
+
+pattern PARAM_ANGULAR_VELOCITY = 1
+
+pattern PARAM_TANGENTIAL_ACCEL :: Int
+
+pattern PARAM_TANGENTIAL_ACCEL = 5
+
+pattern PARAM_ANIM_SPEED :: Int
+
+pattern PARAM_ANIM_SPEED = 10
+
+pattern EMISSION_SHAPE_POINTS :: Int
+
+pattern EMISSION_SHAPE_POINTS = 3
+
+pattern PARAM_MAX :: Int
+
+pattern PARAM_MAX = 12
+
+pattern PARAM_INITIAL_LINEAR_VELOCITY :: Int
+
+pattern PARAM_INITIAL_LINEAR_VELOCITY = 0
+
+pattern FLAG_MAX :: Int
+
+pattern FLAG_MAX = 2
+
+pattern EMISSION_SHAPE_RECTANGLE :: Int
+
+pattern EMISSION_SHAPE_RECTANGLE = 2
+
+pattern PARAM_LINEAR_ACCEL :: Int
+
+pattern PARAM_LINEAR_ACCEL = 3
+
+pattern EMISSION_SHAPE_DIRECTED_POINTS :: Int
+
+pattern EMISSION_SHAPE_DIRECTED_POINTS = 4
+
+pattern EMISSION_SHAPE_POINT :: Int
+
+pattern EMISSION_SHAPE_POINT = 0
+
+pattern PARAM_ORBIT_VELOCITY :: Int
+
+pattern PARAM_ORBIT_VELOCITY = 2
+
+pattern DRAW_ORDER_LIFETIME :: Int
+
+pattern DRAW_ORDER_LIFETIME = 1
+
+pattern PARAM_SCALE :: Int
+
+pattern PARAM_SCALE = 8
+
+pattern DRAW_ORDER_INDEX :: Int
+
+pattern DRAW_ORDER_INDEX = 0
+
+pattern PARAM_DAMPING :: Int
+
+pattern PARAM_DAMPING = 6
+
+pattern PARAM_HUE_VARIATION :: Int
+
+pattern PARAM_HUE_VARIATION = 9
+
+pattern PARAM_ANIM_OFFSET :: Int
+
+pattern PARAM_ANIM_OFFSET = 11
+
+pattern PARAM_ANGLE :: Int
+
+pattern PARAM_ANGLE = 7
diff --git a/src/Godot/Core/GodotCSGBox.hs b/src/Godot/Core/GodotCSGBox.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCSGBox.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCSGBox where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCSGCombiner.hs b/src/Godot/Core/GodotCSGCombiner.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCSGCombiner.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCSGCombiner where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCSGCylinder.hs b/src/Godot/Core/GodotCSGCylinder.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCSGCylinder.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCSGCylinder where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCSGMesh.hs b/src/Godot/Core/GodotCSGMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCSGMesh.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCSGMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCSGPolygon.hs b/src/Godot/Core/GodotCSGPolygon.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCSGPolygon.hs
@@ -0,0 +1,32 @@
+module Godot.Core.GodotCSGPolygon where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MODE_PATH :: Int
+
+pattern MODE_PATH = 2
+
+pattern PATH_ROTATION_PATH :: Int
+
+pattern PATH_ROTATION_PATH = 1
+
+pattern PATH_ROTATION_PATH_FOLLOW :: Int
+
+pattern PATH_ROTATION_PATH_FOLLOW = 2
+
+pattern PATH_ROTATION_POLYGON :: Int
+
+pattern PATH_ROTATION_POLYGON = 0
+
+pattern MODE_SPIN :: Int
+
+pattern MODE_SPIN = 1
+
+pattern MODE_DEPTH :: Int
+
+pattern MODE_DEPTH = 0
diff --git a/src/Godot/Core/GodotCSGPrimitive.hs b/src/Godot/Core/GodotCSGPrimitive.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCSGPrimitive.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCSGPrimitive where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCSGShape.hs b/src/Godot/Core/GodotCSGShape.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCSGShape.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotCSGShape where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern OPERATION_SUBTRACTION :: Int
+
+pattern OPERATION_SUBTRACTION = 2
+
+pattern OPERATION_UNION :: Int
+
+pattern OPERATION_UNION = 0
+
+pattern OPERATION_INTERSECTION :: Int
+
+pattern OPERATION_INTERSECTION = 1
diff --git a/src/Godot/Core/GodotCSGSphere.hs b/src/Godot/Core/GodotCSGSphere.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCSGSphere.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCSGSphere where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCSGTorus.hs b/src/Godot/Core/GodotCSGTorus.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCSGTorus.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCSGTorus where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCamera.hs b/src/Godot/Core/GodotCamera.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCamera.hs
@@ -0,0 +1,36 @@
+module Godot.Core.GodotCamera where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern PROJECTION_ORTHOGONAL :: Int
+
+pattern PROJECTION_ORTHOGONAL = 1
+
+pattern KEEP_HEIGHT :: Int
+
+pattern KEEP_HEIGHT = 1
+
+pattern DOPPLER_TRACKING_PHYSICS_STEP :: Int
+
+pattern DOPPLER_TRACKING_PHYSICS_STEP = 2
+
+pattern DOPPLER_TRACKING_DISABLED :: Int
+
+pattern DOPPLER_TRACKING_DISABLED = 0
+
+pattern KEEP_WIDTH :: Int
+
+pattern KEEP_WIDTH = 0
+
+pattern DOPPLER_TRACKING_IDLE_STEP :: Int
+
+pattern DOPPLER_TRACKING_IDLE_STEP = 1
+
+pattern PROJECTION_PERSPECTIVE :: Int
+
+pattern PROJECTION_PERSPECTIVE = 0
diff --git a/src/Godot/Core/GodotCamera2D.hs b/src/Godot/Core/GodotCamera2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCamera2D.hs
@@ -0,0 +1,16 @@
+module Godot.Core.GodotCamera2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ANCHOR_MODE_FIXED_TOP_LEFT :: Int
+
+pattern ANCHOR_MODE_FIXED_TOP_LEFT = 0
+
+pattern ANCHOR_MODE_DRAG_CENTER :: Int
+
+pattern ANCHOR_MODE_DRAG_CENTER = 1
diff --git a/src/Godot/Core/GodotCanvasItem.hs b/src/Godot/Core/GodotCanvasItem.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCanvasItem.hs
@@ -0,0 +1,64 @@
+module Godot.Core.GodotCanvasItem where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern BLEND_MODE_DISABLED :: Int
+
+pattern BLEND_MODE_DISABLED = 5
+
+pattern NOTIFICATION_EXIT_CANVAS :: Int
+
+pattern NOTIFICATION_EXIT_CANVAS = 33
+
+pattern NOTIFICATION_ENTER_CANVAS :: Int
+
+pattern NOTIFICATION_ENTER_CANVAS = 32
+
+pattern NOTIFICATION_TRANSFORM_CHANGED :: Int
+
+pattern NOTIFICATION_TRANSFORM_CHANGED = 29
+
+pattern BLEND_MODE_ADD :: Int
+
+pattern BLEND_MODE_ADD = 1
+
+pattern BLEND_MODE_MIX :: Int
+
+pattern BLEND_MODE_MIX = 0
+
+pattern NOTIFICATION_DRAW :: Int
+
+pattern NOTIFICATION_DRAW = 30
+
+pattern BLEND_MODE_MUL :: Int
+
+pattern BLEND_MODE_MUL = 3
+
+pattern BLEND_MODE_PREMULT_ALPHA :: Int
+
+pattern BLEND_MODE_PREMULT_ALPHA = 4
+
+pattern BLEND_MODE_SUB :: Int
+
+pattern BLEND_MODE_SUB = 2
+
+pattern NOTIFICATION_VISIBILITY_CHANGED :: Int
+
+pattern NOTIFICATION_VISIBILITY_CHANGED = 31
+
+item_rect_changed :: Signal GodotCanvasItem
+item_rect_changed = Signal "item_rect_changed"
+
+draw :: Signal GodotCanvasItem
+draw = Signal "draw"
+
+visibility_changed :: Signal GodotCanvasItem
+visibility_changed = Signal "visibility_changed"
+
+hide :: Signal GodotCanvasItem
+hide = Signal "hide"
diff --git a/src/Godot/Core/GodotCanvasItemMaterial.hs b/src/Godot/Core/GodotCanvasItemMaterial.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCanvasItemMaterial.hs
@@ -0,0 +1,40 @@
+module Godot.Core.GodotCanvasItemMaterial where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern BLEND_MODE_ADD :: Int
+
+pattern BLEND_MODE_ADD = 1
+
+pattern BLEND_MODE_MIX :: Int
+
+pattern BLEND_MODE_MIX = 0
+
+pattern LIGHT_MODE_LIGHT_ONLY :: Int
+
+pattern LIGHT_MODE_LIGHT_ONLY = 2
+
+pattern BLEND_MODE_MUL :: Int
+
+pattern BLEND_MODE_MUL = 3
+
+pattern BLEND_MODE_PREMULT_ALPHA :: Int
+
+pattern BLEND_MODE_PREMULT_ALPHA = 4
+
+pattern LIGHT_MODE_NORMAL :: Int
+
+pattern LIGHT_MODE_NORMAL = 0
+
+pattern BLEND_MODE_SUB :: Int
+
+pattern BLEND_MODE_SUB = 2
+
+pattern LIGHT_MODE_UNSHADED :: Int
+
+pattern LIGHT_MODE_UNSHADED = 1
diff --git a/src/Godot/Core/GodotCanvasLayer.hs b/src/Godot/Core/GodotCanvasLayer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCanvasLayer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCanvasLayer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCanvasModulate.hs b/src/Godot/Core/GodotCanvasModulate.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCanvasModulate.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCanvasModulate where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCapsuleMesh.hs b/src/Godot/Core/GodotCapsuleMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCapsuleMesh.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCapsuleMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCapsuleShape.hs b/src/Godot/Core/GodotCapsuleShape.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCapsuleShape.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCapsuleShape where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCapsuleShape2D.hs b/src/Godot/Core/GodotCapsuleShape2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCapsuleShape2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCapsuleShape2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCenterContainer.hs b/src/Godot/Core/GodotCenterContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCenterContainer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCenterContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCheckBox.hs b/src/Godot/Core/GodotCheckBox.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCheckBox.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCheckBox where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCheckButton.hs b/src/Godot/Core/GodotCheckButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCheckButton.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCheckButton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCircleShape2D.hs b/src/Godot/Core/GodotCircleShape2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCircleShape2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCircleShape2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotClippedCamera.hs b/src/Godot/Core/GodotClippedCamera.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotClippedCamera.hs
@@ -0,0 +1,16 @@
+module Godot.Core.GodotClippedCamera where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CLIP_PROCESS_PHYSICS :: Int
+
+pattern CLIP_PROCESS_PHYSICS = 0
+
+pattern CLIP_PROCESS_IDLE :: Int
+
+pattern CLIP_PROCESS_IDLE = 1
diff --git a/src/Godot/Core/GodotCollisionObject.hs b/src/Godot/Core/GodotCollisionObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCollisionObject.hs
@@ -0,0 +1,17 @@
+module Godot.Core.GodotCollisionObject where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+mouse_exited :: Signal GodotCollisionObject
+mouse_exited = Signal "mouse_exited"
+
+mouse_entered :: Signal GodotCollisionObject
+mouse_entered = Signal "mouse_entered"
+
+input_event :: Signal GodotCollisionObject
+input_event = Signal "input_event"
diff --git a/src/Godot/Core/GodotCollisionObject2D.hs b/src/Godot/Core/GodotCollisionObject2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCollisionObject2D.hs
@@ -0,0 +1,17 @@
+module Godot.Core.GodotCollisionObject2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+mouse_exited :: Signal GodotCollisionObject2D
+mouse_exited = Signal "mouse_exited"
+
+mouse_entered :: Signal GodotCollisionObject2D
+mouse_entered = Signal "mouse_entered"
+
+input_event :: Signal GodotCollisionObject2D
+input_event = Signal "input_event"
diff --git a/src/Godot/Core/GodotCollisionPolygon.hs b/src/Godot/Core/GodotCollisionPolygon.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCollisionPolygon.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCollisionPolygon where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCollisionPolygon2D.hs b/src/Godot/Core/GodotCollisionPolygon2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCollisionPolygon2D.hs
@@ -0,0 +1,16 @@
+module Godot.Core.GodotCollisionPolygon2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern BUILD_SOLIDS :: Int
+
+pattern BUILD_SOLIDS = 0
+
+pattern BUILD_SEGMENTS :: Int
+
+pattern BUILD_SEGMENTS = 1
diff --git a/src/Godot/Core/GodotCollisionShape.hs b/src/Godot/Core/GodotCollisionShape.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCollisionShape.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCollisionShape where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCollisionShape2D.hs b/src/Godot/Core/GodotCollisionShape2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCollisionShape2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCollisionShape2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotColorPicker.hs b/src/Godot/Core/GodotColorPicker.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotColorPicker.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotColorPicker where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+color_changed :: Signal GodotColorPicker
+color_changed = Signal "color_changed"
diff --git a/src/Godot/Core/GodotColorPickerButton.hs b/src/Godot/Core/GodotColorPickerButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotColorPickerButton.hs
@@ -0,0 +1,14 @@
+module Godot.Core.GodotColorPickerButton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+popup_closed :: Signal GodotColorPickerButton
+popup_closed = Signal "popup_closed"
+
+color_changed :: Signal GodotColorPickerButton
+color_changed = Signal "color_changed"
diff --git a/src/Godot/Core/GodotColorRect.hs b/src/Godot/Core/GodotColorRect.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotColorRect.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotColorRect where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotConcavePolygonShape.hs b/src/Godot/Core/GodotConcavePolygonShape.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotConcavePolygonShape.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotConcavePolygonShape where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotConcavePolygonShape2D.hs b/src/Godot/Core/GodotConcavePolygonShape2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotConcavePolygonShape2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotConcavePolygonShape2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotConeTwistJoint.hs b/src/Godot/Core/GodotConeTwistJoint.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotConeTwistJoint.hs
@@ -0,0 +1,32 @@
+module Godot.Core.GodotConeTwistJoint where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern PARAM_SWING_SPAN :: Int
+
+pattern PARAM_SWING_SPAN = 0
+
+pattern PARAM_SOFTNESS :: Int
+
+pattern PARAM_SOFTNESS = 3
+
+pattern PARAM_TWIST_SPAN :: Int
+
+pattern PARAM_TWIST_SPAN = 1
+
+pattern PARAM_MAX :: Int
+
+pattern PARAM_MAX = 5
+
+pattern PARAM_RELAXATION :: Int
+
+pattern PARAM_RELAXATION = 4
+
+pattern PARAM_BIAS :: Int
+
+pattern PARAM_BIAS = 2
diff --git a/src/Godot/Core/GodotConfigFile.hs b/src/Godot/Core/GodotConfigFile.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotConfigFile.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotConfigFile where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotConfirmationDialog.hs b/src/Godot/Core/GodotConfirmationDialog.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotConfirmationDialog.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotConfirmationDialog where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotContainer.hs b/src/Godot/Core/GodotContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotContainer.hs
@@ -0,0 +1,15 @@
+module Godot.Core.GodotContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern NOTIFICATION_SORT_CHILDREN :: Int
+
+pattern NOTIFICATION_SORT_CHILDREN = 50
+
+sort_children :: Signal GodotContainer
+sort_children = Signal "sort_children"
diff --git a/src/Godot/Core/GodotControl.hs b/src/Godot/Core/GodotControl.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotControl.hs
@@ -0,0 +1,283 @@
+module Godot.Core.GodotControl where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern NOTIFICATION_MOUSE_EXIT :: Int
+
+pattern NOTIFICATION_MOUSE_EXIT = 42
+
+pattern CURSOR_MOVE :: Int
+
+pattern CURSOR_MOVE = 13
+
+pattern NOTIFICATION_MOUSE_ENTER :: Int
+
+pattern NOTIFICATION_MOUSE_ENTER = 41
+
+pattern PRESET_MODE_KEEP_WIDTH :: Int
+
+pattern PRESET_MODE_KEEP_WIDTH = 1
+
+pattern CURSOR_ARROW :: Int
+
+pattern CURSOR_ARROW = 0
+
+pattern GROW_DIRECTION_BEGIN :: Int
+
+pattern GROW_DIRECTION_BEGIN = 0
+
+pattern CURSOR_IBEAM :: Int
+
+pattern CURSOR_IBEAM = 1
+
+pattern NOTIFICATION_SCROLL_END :: Int
+
+pattern NOTIFICATION_SCROLL_END = 48
+
+pattern CURSOR_HSPLIT :: Int
+
+pattern CURSOR_HSPLIT = 15
+
+pattern FOCUS_ALL :: Int
+
+pattern FOCUS_ALL = 2
+
+pattern PRESET_BOTTOM_RIGHT :: Int
+
+pattern PRESET_BOTTOM_RIGHT = 3
+
+pattern CURSOR_DRAG :: Int
+
+pattern CURSOR_DRAG = 6
+
+pattern PRESET_TOP_LEFT :: Int
+
+pattern PRESET_TOP_LEFT = 0
+
+pattern PRESET_CENTER_TOP :: Int
+
+pattern PRESET_CENTER_TOP = 5
+
+pattern FOCUS_CLICK :: Int
+
+pattern FOCUS_CLICK = 1
+
+pattern CURSOR_BUSY :: Int
+
+pattern CURSOR_BUSY = 5
+
+pattern SIZE_SHRINK_CENTER :: Int
+
+pattern SIZE_SHRINK_CENTER = 4
+
+pattern CURSOR_CROSS :: Int
+
+pattern CURSOR_CROSS = 3
+
+pattern CURSOR_WAIT :: Int
+
+pattern CURSOR_WAIT = 4
+
+pattern PRESET_TOP_RIGHT :: Int
+
+pattern PRESET_TOP_RIGHT = 1
+
+pattern NOTIFICATION_THEME_CHANGED :: Int
+
+pattern NOTIFICATION_THEME_CHANGED = 45
+
+pattern CURSOR_BDIAGSIZE :: Int
+
+pattern CURSOR_BDIAGSIZE = 11
+
+pattern PRESET_HCENTER_WIDE :: Int
+
+pattern PRESET_HCENTER_WIDE = 14
+
+pattern GROW_DIRECTION_BOTH :: Int
+
+pattern GROW_DIRECTION_BOTH = 2
+
+pattern ANCHOR_BEGIN :: Int
+
+pattern ANCHOR_BEGIN = 0
+
+pattern MOUSE_FILTER_IGNORE :: Int
+
+pattern MOUSE_FILTER_IGNORE = 2
+
+pattern PRESET_TOP_WIDE :: Int
+
+pattern PRESET_TOP_WIDE = 10
+
+pattern PRESET_MODE_MINSIZE :: Int
+
+pattern PRESET_MODE_MINSIZE = 0
+
+pattern NOTIFICATION_FOCUS_ENTER :: Int
+
+pattern NOTIFICATION_FOCUS_ENTER = 43
+
+pattern SIZE_EXPAND_FILL :: Int
+
+pattern SIZE_EXPAND_FILL = 3
+
+pattern CURSOR_HELP :: Int
+
+pattern CURSOR_HELP = 16
+
+pattern NOTIFICATION_RESIZED :: Int
+
+pattern NOTIFICATION_RESIZED = 40
+
+pattern SIZE_EXPAND :: Int
+
+pattern SIZE_EXPAND = 2
+
+pattern CURSOR_CAN_DROP :: Int
+
+pattern CURSOR_CAN_DROP = 7
+
+pattern NOTIFICATION_SCROLL_BEGIN :: Int
+
+pattern NOTIFICATION_SCROLL_BEGIN = 47
+
+pattern PRESET_MODE_KEEP_SIZE :: Int
+
+pattern PRESET_MODE_KEEP_SIZE = 3
+
+pattern GROW_DIRECTION_END :: Int
+
+pattern GROW_DIRECTION_END = 1
+
+pattern PRESET_VCENTER_WIDE :: Int
+
+pattern PRESET_VCENTER_WIDE = 13
+
+pattern SIZE_SHRINK_END :: Int
+
+pattern SIZE_SHRINK_END = 8
+
+pattern PRESET_RIGHT_WIDE :: Int
+
+pattern PRESET_RIGHT_WIDE = 11
+
+pattern SIZE_FILL :: Int
+
+pattern SIZE_FILL = 1
+
+pattern PRESET_BOTTOM_WIDE :: Int
+
+pattern PRESET_BOTTOM_WIDE = 12
+
+pattern CURSOR_POINTING_HAND :: Int
+
+pattern CURSOR_POINTING_HAND = 2
+
+pattern PRESET_MODE_KEEP_HEIGHT :: Int
+
+pattern PRESET_MODE_KEEP_HEIGHT = 2
+
+pattern CURSOR_FDIAGSIZE :: Int
+
+pattern CURSOR_FDIAGSIZE = 12
+
+pattern PRESET_WIDE :: Int
+
+pattern PRESET_WIDE = 15
+
+pattern PRESET_CENTER_LEFT :: Int
+
+pattern PRESET_CENTER_LEFT = 4
+
+pattern MOUSE_FILTER_PASS :: Int
+
+pattern MOUSE_FILTER_PASS = 1
+
+pattern NOTIFICATION_MODAL_CLOSE :: Int
+
+pattern NOTIFICATION_MODAL_CLOSE = 46
+
+pattern CURSOR_HSIZE :: Int
+
+pattern CURSOR_HSIZE = 10
+
+pattern PRESET_CENTER_RIGHT :: Int
+
+pattern PRESET_CENTER_RIGHT = 6
+
+pattern CURSOR_FORBIDDEN :: Int
+
+pattern CURSOR_FORBIDDEN = 8
+
+pattern CURSOR_VSIZE :: Int
+
+pattern CURSOR_VSIZE = 9
+
+pattern PRESET_CENTER_BOTTOM :: Int
+
+pattern PRESET_CENTER_BOTTOM = 7
+
+pattern NOTIFICATION_FOCUS_EXIT :: Int
+
+pattern NOTIFICATION_FOCUS_EXIT = 44
+
+pattern PRESET_LEFT_WIDE :: Int
+
+pattern PRESET_LEFT_WIDE = 9
+
+pattern ANCHOR_END :: Int
+
+pattern ANCHOR_END = 1
+
+pattern MOUSE_FILTER_STOP :: Int
+
+pattern MOUSE_FILTER_STOP = 0
+
+pattern PRESET_BOTTOM_LEFT :: Int
+
+pattern PRESET_BOTTOM_LEFT = 2
+
+pattern PRESET_CENTER :: Int
+
+pattern PRESET_CENTER = 8
+
+pattern CURSOR_VSPLIT :: Int
+
+pattern CURSOR_VSPLIT = 14
+
+pattern FOCUS_NONE :: Int
+
+pattern FOCUS_NONE = 0
+
+mouse_exited :: Signal GodotControl
+mouse_exited = Signal "mouse_exited"
+
+gui_input :: Signal GodotControl
+gui_input = Signal "gui_input"
+
+modal_closed :: Signal GodotControl
+modal_closed = Signal "modal_closed"
+
+focus_entered :: Signal GodotControl
+focus_entered = Signal "focus_entered"
+
+resized :: Signal GodotControl
+resized = Signal "resized"
+
+minimum_size_changed :: Signal GodotControl
+minimum_size_changed = Signal "minimum_size_changed"
+
+mouse_entered :: Signal GodotControl
+mouse_entered = Signal "mouse_entered"
+
+size_flags_changed :: Signal GodotControl
+size_flags_changed = Signal "size_flags_changed"
+
+focus_exited :: Signal GodotControl
+focus_exited = Signal "focus_exited"
diff --git a/src/Godot/Core/GodotConvexPolygonShape.hs b/src/Godot/Core/GodotConvexPolygonShape.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotConvexPolygonShape.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotConvexPolygonShape where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotConvexPolygonShape2D.hs b/src/Godot/Core/GodotConvexPolygonShape2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotConvexPolygonShape2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotConvexPolygonShape2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCubeMap.hs b/src/Godot/Core/GodotCubeMap.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCubeMap.hs
@@ -0,0 +1,60 @@
+module Godot.Core.GodotCubeMap where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SIDE_RIGHT :: Int
+
+pattern SIDE_RIGHT = 1
+
+pattern SIDE_TOP :: Int
+
+pattern SIDE_TOP = 3
+
+pattern SIDE_BACK :: Int
+
+pattern SIDE_BACK = 5
+
+pattern STORAGE_RAW :: Int
+
+pattern STORAGE_RAW = 0
+
+pattern STORAGE_COMPRESS_LOSSLESS :: Int
+
+pattern STORAGE_COMPRESS_LOSSLESS = 2
+
+pattern FLAGS_DEFAULT :: Int
+
+pattern FLAGS_DEFAULT = 7
+
+pattern FLAG_REPEAT :: Int
+
+pattern FLAG_REPEAT = 2
+
+pattern SIDE_LEFT :: Int
+
+pattern SIDE_LEFT = 0
+
+pattern SIDE_FRONT :: Int
+
+pattern SIDE_FRONT = 4
+
+pattern STORAGE_COMPRESS_LOSSY :: Int
+
+pattern STORAGE_COMPRESS_LOSSY = 1
+
+pattern FLAG_MIPMAPS :: Int
+
+pattern FLAG_MIPMAPS = 1
+
+pattern SIDE_BOTTOM :: Int
+
+pattern SIDE_BOTTOM = 2
+
+pattern FLAG_FILTER :: Int
+
+pattern FLAG_FILTER = 4
diff --git a/src/Godot/Core/GodotCubeMesh.hs b/src/Godot/Core/GodotCubeMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCubeMesh.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCubeMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCurve.hs b/src/Godot/Core/GodotCurve.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCurve.hs
@@ -0,0 +1,23 @@
+module Godot.Core.GodotCurve where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern TANGENT_LINEAR :: Int
+
+pattern TANGENT_LINEAR = 1
+
+pattern TANGENT_FREE :: Int
+
+pattern TANGENT_FREE = 0
+
+pattern TANGENT_MODE_COUNT :: Int
+
+pattern TANGENT_MODE_COUNT = 2
+
+range_changed :: Signal GodotCurve
+range_changed = Signal "range_changed"
diff --git a/src/Godot/Core/GodotCurve2D.hs b/src/Godot/Core/GodotCurve2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCurve2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCurve2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCurve3D.hs b/src/Godot/Core/GodotCurve3D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCurve3D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCurve3D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCurveTexture.hs b/src/Godot/Core/GodotCurveTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCurveTexture.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCurveTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCylinderMesh.hs b/src/Godot/Core/GodotCylinderMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCylinderMesh.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCylinderMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotCylinderShape.hs b/src/Godot/Core/GodotCylinderShape.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotCylinderShape.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotCylinderShape where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotDampedSpringJoint2D.hs b/src/Godot/Core/GodotDampedSpringJoint2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotDampedSpringJoint2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotDampedSpringJoint2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotDirectionalLight.hs b/src/Godot/Core/GodotDirectionalLight.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotDirectionalLight.hs
@@ -0,0 +1,28 @@
+module Godot.Core.GodotDirectionalLight where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SHADOW_ORTHOGONAL :: Int
+
+pattern SHADOW_ORTHOGONAL = 0
+
+pattern SHADOW_PARALLEL_4_SPLITS :: Int
+
+pattern SHADOW_PARALLEL_4_SPLITS = 2
+
+pattern SHADOW_DEPTH_RANGE_STABLE :: Int
+
+pattern SHADOW_DEPTH_RANGE_STABLE = 0
+
+pattern SHADOW_DEPTH_RANGE_OPTIMIZED :: Int
+
+pattern SHADOW_DEPTH_RANGE_OPTIMIZED = 1
+
+pattern SHADOW_PARALLEL_2_SPLITS :: Int
+
+pattern SHADOW_PARALLEL_2_SPLITS = 1
diff --git a/src/Godot/Core/GodotDynamicFont.hs b/src/Godot/Core/GodotDynamicFont.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotDynamicFont.hs
@@ -0,0 +1,24 @@
+module Godot.Core.GodotDynamicFont where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SPACING_TOP :: Int
+
+pattern SPACING_TOP = 0
+
+pattern SPACING_SPACE :: Int
+
+pattern SPACING_SPACE = 3
+
+pattern SPACING_CHAR :: Int
+
+pattern SPACING_CHAR = 2
+
+pattern SPACING_BOTTOM :: Int
+
+pattern SPACING_BOTTOM = 1
diff --git a/src/Godot/Core/GodotDynamicFontData.hs b/src/Godot/Core/GodotDynamicFontData.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotDynamicFontData.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotDynamicFontData where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern HINTING_NONE :: Int
+
+pattern HINTING_NONE = 0
+
+pattern HINTING_NORMAL :: Int
+
+pattern HINTING_NORMAL = 2
+
+pattern HINTING_LIGHT :: Int
+
+pattern HINTING_LIGHT = 1
diff --git a/src/Godot/Core/GodotEncodedObjectAsID.hs b/src/Godot/Core/GodotEncodedObjectAsID.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotEncodedObjectAsID.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotEncodedObjectAsID where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotEnvironment.hs b/src/Godot/Core/GodotEnvironment.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotEnvironment.hs
@@ -0,0 +1,108 @@
+module Godot.Core.GodotEnvironment where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern TONE_MAPPER_FILMIC :: Int
+
+pattern TONE_MAPPER_FILMIC = 2
+
+pattern SSAO_QUALITY_LOW :: Int
+
+pattern SSAO_QUALITY_LOW = 0
+
+pattern BG_CANVAS :: Int
+
+pattern BG_CANVAS = 4
+
+pattern DOF_BLUR_QUALITY_LOW :: Int
+
+pattern DOF_BLUR_QUALITY_LOW = 0
+
+pattern GLOW_BLEND_MODE_ADDITIVE :: Int
+
+pattern GLOW_BLEND_MODE_ADDITIVE = 0
+
+pattern DOF_BLUR_QUALITY_HIGH :: Int
+
+pattern DOF_BLUR_QUALITY_HIGH = 2
+
+pattern DOF_BLUR_QUALITY_MEDIUM :: Int
+
+pattern DOF_BLUR_QUALITY_MEDIUM = 1
+
+pattern BG_SKY :: Int
+
+pattern BG_SKY = 2
+
+pattern SSAO_QUALITY_MEDIUM :: Int
+
+pattern SSAO_QUALITY_MEDIUM = 1
+
+pattern GLOW_BLEND_MODE_SOFTLIGHT :: Int
+
+pattern GLOW_BLEND_MODE_SOFTLIGHT = 2
+
+pattern TONE_MAPPER_LINEAR :: Int
+
+pattern TONE_MAPPER_LINEAR = 0
+
+pattern BG_MAX :: Int
+
+pattern BG_MAX = 6
+
+pattern BG_COLOR_SKY :: Int
+
+pattern BG_COLOR_SKY = 3
+
+pattern SSAO_BLUR_DISABLED :: Int
+
+pattern SSAO_BLUR_DISABLED = 0
+
+pattern SSAO_BLUR_2x2 :: Int
+
+pattern SSAO_BLUR_2x2 = 2
+
+pattern TONE_MAPPER_ACES :: Int
+
+pattern TONE_MAPPER_ACES = 3
+
+pattern SSAO_BLUR_1x1 :: Int
+
+pattern SSAO_BLUR_1x1 = 1
+
+pattern BG_COLOR :: Int
+
+pattern BG_COLOR = 1
+
+pattern SSAO_BLUR_3x3 :: Int
+
+pattern SSAO_BLUR_3x3 = 3
+
+pattern GLOW_BLEND_MODE_REPLACE :: Int
+
+pattern GLOW_BLEND_MODE_REPLACE = 3
+
+pattern GLOW_BLEND_MODE_SCREEN :: Int
+
+pattern GLOW_BLEND_MODE_SCREEN = 1
+
+pattern SSAO_QUALITY_HIGH :: Int
+
+pattern SSAO_QUALITY_HIGH = 2
+
+pattern TONE_MAPPER_REINHARDT :: Int
+
+pattern TONE_MAPPER_REINHARDT = 1
+
+pattern BG_CLEAR_COLOR :: Int
+
+pattern BG_CLEAR_COLOR = 0
+
+pattern BG_KEEP :: Int
+
+pattern BG_KEEP = 5
diff --git a/src/Godot/Core/GodotExpression.hs b/src/Godot/Core/GodotExpression.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotExpression.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotExpression where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotFileDialog.hs b/src/Godot/Core/GodotFileDialog.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotFileDialog.hs
@@ -0,0 +1,49 @@
+module Godot.Core.GodotFileDialog where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ACCESS_RESOURCES :: Int
+
+pattern ACCESS_RESOURCES = 0
+
+pattern MODE_OPEN_FILES :: Int
+
+pattern MODE_OPEN_FILES = 1
+
+pattern MODE_OPEN_FILE :: Int
+
+pattern MODE_OPEN_FILE = 0
+
+pattern MODE_SAVE_FILE :: Int
+
+pattern MODE_SAVE_FILE = 4
+
+pattern ACCESS_USERDATA :: Int
+
+pattern ACCESS_USERDATA = 1
+
+pattern ACCESS_FILESYSTEM :: Int
+
+pattern ACCESS_FILESYSTEM = 2
+
+pattern MODE_OPEN_DIR :: Int
+
+pattern MODE_OPEN_DIR = 2
+
+pattern MODE_OPEN_ANY :: Int
+
+pattern MODE_OPEN_ANY = 3
+
+files_selected :: Signal GodotFileDialog
+files_selected = Signal "files_selected"
+
+dir_selected :: Signal GodotFileDialog
+dir_selected = Signal "dir_selected"
+
+file_selected :: Signal GodotFileDialog
+file_selected = Signal "file_selected"
diff --git a/src/Godot/Core/GodotFont.hs b/src/Godot/Core/GodotFont.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotFont.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotFont where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotFuncRef.hs b/src/Godot/Core/GodotFuncRef.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotFuncRef.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotFuncRef where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotGDNative.hs b/src/Godot/Core/GodotGDNative.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGDNative.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotGDNative where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotGDNativeLibrary.hs b/src/Godot/Core/GodotGDNativeLibrary.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGDNativeLibrary.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotGDNativeLibrary where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotGDScript.hs b/src/Godot/Core/GodotGDScript.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGDScript.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotGDScript where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotGDScriptFunctionState.hs b/src/Godot/Core/GodotGDScriptFunctionState.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGDScriptFunctionState.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotGDScriptFunctionState where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+completed :: Signal GodotGDScriptFunctionState
+completed = Signal "completed"
diff --git a/src/Godot/Core/GodotGIProbe.hs b/src/Godot/Core/GodotGIProbe.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGIProbe.hs
@@ -0,0 +1,28 @@
+module Godot.Core.GodotGIProbe where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SUBDIV_64 :: Int
+
+pattern SUBDIV_64 = 0
+
+pattern SUBDIV_256 :: Int
+
+pattern SUBDIV_256 = 2
+
+pattern SUBDIV_MAX :: Int
+
+pattern SUBDIV_MAX = 4
+
+pattern SUBDIV_128 :: Int
+
+pattern SUBDIV_128 = 1
+
+pattern SUBDIV_512 :: Int
+
+pattern SUBDIV_512 = 3
diff --git a/src/Godot/Core/GodotGIProbeData.hs b/src/Godot/Core/GodotGIProbeData.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGIProbeData.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotGIProbeData where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotGeneric6DOFJoint.hs b/src/Godot/Core/GodotGeneric6DOFJoint.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGeneric6DOFJoint.hs
@@ -0,0 +1,96 @@
+module Godot.Core.GodotGeneric6DOFJoint where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern PARAM_ANGULAR_LOWER_LIMIT :: Int
+
+pattern PARAM_ANGULAR_LOWER_LIMIT = 7
+
+pattern FLAG_ENABLE_LINEAR_MOTOR :: Int
+
+pattern FLAG_ENABLE_LINEAR_MOTOR = 3
+
+pattern PARAM_LINEAR_MOTOR_TARGET_VELOCITY :: Int
+
+pattern PARAM_LINEAR_MOTOR_TARGET_VELOCITY = 5
+
+pattern PARAM_LINEAR_DAMPING :: Int
+
+pattern PARAM_LINEAR_DAMPING = 4
+
+pattern PARAM_ANGULAR_ERP :: Int
+
+pattern PARAM_ANGULAR_ERP = 13
+
+pattern PARAM_ANGULAR_DAMPING :: Int
+
+pattern PARAM_ANGULAR_DAMPING = 10
+
+pattern FLAG_ENABLE_ANGULAR_LIMIT :: Int
+
+pattern FLAG_ENABLE_ANGULAR_LIMIT = 1
+
+pattern PARAM_LINEAR_LIMIT_SOFTNESS :: Int
+
+pattern PARAM_LINEAR_LIMIT_SOFTNESS = 2
+
+pattern PARAM_ANGULAR_MOTOR_TARGET_VELOCITY :: Int
+
+pattern PARAM_ANGULAR_MOTOR_TARGET_VELOCITY = 14
+
+pattern PARAM_LINEAR_LOWER_LIMIT :: Int
+
+pattern PARAM_LINEAR_LOWER_LIMIT = 0
+
+pattern PARAM_ANGULAR_MOTOR_FORCE_LIMIT :: Int
+
+pattern PARAM_ANGULAR_MOTOR_FORCE_LIMIT = 15
+
+pattern PARAM_LINEAR_RESTITUTION :: Int
+
+pattern PARAM_LINEAR_RESTITUTION = 3
+
+pattern PARAM_MAX :: Int
+
+pattern PARAM_MAX = 16
+
+pattern FLAG_MAX :: Int
+
+pattern FLAG_MAX = 4
+
+pattern PARAM_ANGULAR_LIMIT_SOFTNESS :: Int
+
+pattern PARAM_ANGULAR_LIMIT_SOFTNESS = 9
+
+pattern PARAM_LINEAR_UPPER_LIMIT :: Int
+
+pattern PARAM_LINEAR_UPPER_LIMIT = 1
+
+pattern PARAM_ANGULAR_FORCE_LIMIT :: Int
+
+pattern PARAM_ANGULAR_FORCE_LIMIT = 12
+
+pattern FLAG_ENABLE_LINEAR_LIMIT :: Int
+
+pattern FLAG_ENABLE_LINEAR_LIMIT = 0
+
+pattern PARAM_ANGULAR_UPPER_LIMIT :: Int
+
+pattern PARAM_ANGULAR_UPPER_LIMIT = 8
+
+pattern FLAG_ENABLE_MOTOR :: Int
+
+pattern FLAG_ENABLE_MOTOR = 2
+
+pattern PARAM_LINEAR_MOTOR_FORCE_LIMIT :: Int
+
+pattern PARAM_LINEAR_MOTOR_FORCE_LIMIT = 6
+
+pattern PARAM_ANGULAR_RESTITUTION :: Int
+
+pattern PARAM_ANGULAR_RESTITUTION = 11
diff --git a/src/Godot/Core/GodotGeometryInstance.hs b/src/Godot/Core/GodotGeometryInstance.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGeometryInstance.hs
@@ -0,0 +1,32 @@
+module Godot.Core.GodotGeometryInstance where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SHADOW_CASTING_SETTING_SHADOWS_ONLY :: Int
+
+pattern SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3
+
+pattern FLAG_USE_BAKED_LIGHT :: Int
+
+pattern FLAG_USE_BAKED_LIGHT = 0
+
+pattern FLAG_MAX :: Int
+
+pattern FLAG_MAX = 2
+
+pattern SHADOW_CASTING_SETTING_DOUBLE_SIDED :: Int
+
+pattern SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2
+
+pattern SHADOW_CASTING_SETTING_OFF :: Int
+
+pattern SHADOW_CASTING_SETTING_OFF = 0
+
+pattern SHADOW_CASTING_SETTING_ON :: Int
+
+pattern SHADOW_CASTING_SETTING_ON = 1
diff --git a/src/Godot/Core/GodotGlobalConstants.hs b/src/Godot/Core/GodotGlobalConstants.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGlobalConstants.hs
@@ -0,0 +1,1964 @@
+module Godot.Core.GodotGlobalConstants where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern KEY_BACKTAB :: Int
+
+pattern KEY_BACKTAB = 16777219
+
+pattern KEY_BRACELEFT :: Int
+
+pattern KEY_BRACELEFT = 123
+
+pattern OP_MULTIPLY :: Int
+
+pattern OP_MULTIPLY = 8
+
+pattern KEY_LAUNCH1 :: Int
+
+pattern KEY_LAUNCH1 = 16777305
+
+pattern KEY_F2 :: Int
+
+pattern KEY_F2 = 16777245
+
+pattern TYPE_NIL :: Int
+
+pattern TYPE_NIL = 0
+
+pattern PROPERTY_USAGE_SCRIPT_VARIABLE :: Int
+
+pattern PROPERTY_USAGE_SCRIPT_VARIABLE = 8192
+
+pattern KEY_KP_ENTER :: Int
+
+pattern KEY_KP_ENTER = 16777222
+
+pattern KEY_LAUNCHA :: Int
+
+pattern KEY_LAUNCHA = 16777314
+
+pattern OP_EQUAL :: Int
+
+pattern OP_EQUAL = 0
+
+pattern TYPE_INT :: Int
+
+pattern TYPE_INT = 2
+
+pattern KEY_T :: Int
+
+pattern KEY_T = 84
+
+pattern KEY_MACRON :: Int
+
+pattern KEY_MACRON = 175
+
+pattern TYPE_VECTOR2 :: Int
+
+pattern TYPE_VECTOR2 = 5
+
+pattern OK :: Int
+
+pattern OK = 0
+
+pattern PROPERTY_USAGE_NETWORK :: Int
+
+pattern PROPERTY_USAGE_NETWORK = 4
+
+pattern PROPERTY_HINT_KEY_ACCEL :: Int
+
+pattern PROPERTY_HINT_KEY_ACCEL = 7
+
+pattern MIDI_MESSAGE_CONTROL_CHANGE :: Int
+
+pattern MIDI_MESSAGE_CONTROL_CHANGE = 11
+
+pattern KEY_D :: Int
+
+pattern KEY_D = 68
+
+pattern KEY_MODIFIER_MASK :: Int
+
+pattern KEY_MODIFIER_MASK = -16777216
+
+pattern KEY_KP_0 :: Int
+
+pattern KEY_KP_0 = 16777350
+
+pattern JOY_AXIS_3 :: Int
+
+pattern JOY_AXIS_3 = 3
+
+pattern KEY_CENT :: Int
+
+pattern KEY_CENT = 162
+
+pattern KEY_LAUNCHMAIL :: Int
+
+pattern KEY_LAUNCHMAIL = 16777302
+
+pattern CORNER_TOP_RIGHT :: Int
+
+pattern CORNER_TOP_RIGHT = 1
+
+pattern OP_MAX :: Int
+
+pattern OP_MAX = 25
+
+pattern SPKEY :: Int
+
+pattern SPKEY = 16777216
+
+pattern KEY_4 :: Int
+
+pattern KEY_4 = 52
+
+pattern TYPE_STRING_ARRAY :: Int
+
+pattern TYPE_STRING_ARRAY = 23
+
+pattern KEY_SUPER_R :: Int
+
+pattern KEY_SUPER_R = 16777261
+
+pattern KEY_DEGREE :: Int
+
+pattern KEY_DEGREE = 176
+
+pattern ERR_QUERY_FAILED :: Int
+
+pattern ERR_QUERY_FAILED = 21
+
+pattern JOY_BUTTON_5 :: Int
+
+pattern JOY_BUTTON_5 = 5
+
+pattern KEY_CURRENCY :: Int
+
+pattern KEY_CURRENCY = 164
+
+pattern PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS :: Int
+
+pattern PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS = 22
+
+pattern BUTTON_WHEEL_DOWN :: Int
+
+pattern BUTTON_WHEEL_DOWN = 5
+
+pattern VALIGN_TOP :: Int
+
+pattern VALIGN_TOP = 0
+
+pattern KEY_OPENURL :: Int
+
+pattern KEY_OPENURL = 16777301
+
+pattern KEY_F10 :: Int
+
+pattern KEY_F10 = 16777253
+
+pattern ERR_FILE_NOT_FOUND :: Int
+
+pattern ERR_FILE_NOT_FOUND = 7
+
+pattern KEY_IACUTE :: Int
+
+pattern KEY_IACUTE = 205
+
+pattern KEY_F9 :: Int
+
+pattern KEY_F9 = 16777252
+
+pattern MIDI_MESSAGE_PROGRAM_CHANGE :: Int
+
+pattern MIDI_MESSAGE_PROGRAM_CHANGE = 12
+
+pattern JOY_SONY_X :: Int
+
+pattern JOY_SONY_X = 0
+
+pattern ERR_BUSY :: Int
+
+pattern ERR_BUSY = 44
+
+pattern ERR_FILE_EOF :: Int
+
+pattern ERR_FILE_EOF = 18
+
+pattern KEY_BRACERIGHT :: Int
+
+pattern KEY_BRACERIGHT = 125
+
+pattern KEY_THORN :: Int
+
+pattern KEY_THORN = 222
+
+pattern BUTTON_MASK_MIDDLE :: Int
+
+pattern BUTTON_MASK_MIDDLE = 4
+
+pattern KEY_TAB :: Int
+
+pattern KEY_TAB = 16777218
+
+pattern KEY_YACUTE :: Int
+
+pattern KEY_YACUTE = 221
+
+pattern JOY_DPAD_DOWN :: Int
+
+pattern JOY_DPAD_DOWN = 13
+
+pattern KEY_PERIODCENTERED :: Int
+
+pattern KEY_PERIODCENTERED = 183
+
+pattern JOY_AXIS_8 :: Int
+
+pattern JOY_AXIS_8 = 8
+
+pattern KEY_O :: Int
+
+pattern KEY_O = 79
+
+pattern KEY_OTILDE :: Int
+
+pattern KEY_OTILDE = 213
+
+pattern ERR_FILE_BAD_DRIVE :: Int
+
+pattern ERR_FILE_BAD_DRIVE = 8
+
+pattern KEY_END :: Int
+
+pattern KEY_END = 16777230
+
+pattern KEY_PLUS :: Int
+
+pattern KEY_PLUS = 43
+
+pattern MARGIN_TOP :: Int
+
+pattern MARGIN_TOP = 1
+
+pattern KEY_GREATER :: Int
+
+pattern KEY_GREATER = 62
+
+pattern KEY_KP_6 :: Int
+
+pattern KEY_KP_6 = 16777356
+
+pattern JOY_AXIS_5 :: Int
+
+pattern JOY_AXIS_5 = 5
+
+pattern KEY_B :: Int
+
+pattern KEY_B = 66
+
+pattern KEY_NOBREAKSPACE :: Int
+
+pattern KEY_NOBREAKSPACE = 160
+
+pattern METHOD_FLAG_VIRTUAL :: Int
+
+pattern METHOD_FLAG_VIRTUAL = 32
+
+pattern JOY_R3 :: Int
+
+pattern JOY_R3 = 9
+
+pattern JOY_BUTTON_8 :: Int
+
+pattern JOY_BUTTON_8 = 8
+
+pattern KEY_2 :: Int
+
+pattern KEY_2 = 50
+
+pattern TYPE_INT_ARRAY :: Int
+
+pattern TYPE_INT_ARRAY = 21
+
+pattern PROPERTY_HINT_FILE :: Int
+
+pattern PROPERTY_HINT_FILE = 13
+
+pattern JOY_ANALOG_LX :: Int
+
+pattern JOY_ANALOG_LX = 0
+
+pattern MIDI_MESSAGE_NOTE_OFF :: Int
+
+pattern MIDI_MESSAGE_NOTE_OFF = 8
+
+pattern TYPE_VECTOR2_ARRAY :: Int
+
+pattern TYPE_VECTOR2_ARRAY = 24
+
+pattern OP_LESS_EQUAL :: Int
+
+pattern OP_LESS_EQUAL = 3
+
+pattern KEY_PAUSE :: Int
+
+pattern KEY_PAUSE = 16777225
+
+pattern JOY_BUTTON_11 :: Int
+
+pattern JOY_BUTTON_11 = 11
+
+pattern PROPERTY_USAGE_NOEDITOR :: Int
+
+pattern PROPERTY_USAGE_NOEDITOR = 5
+
+pattern BUTTON_LEFT :: Int
+
+pattern BUTTON_LEFT = 1
+
+pattern KEY_LAUNCH7 :: Int
+
+pattern KEY_LAUNCH7 = 16777311
+
+pattern MARGIN_LEFT :: Int
+
+pattern MARGIN_LEFT = 0
+
+pattern KEY_F4 :: Int
+
+pattern KEY_F4 = 16777247
+
+pattern METHOD_FLAG_EDITOR :: Int
+
+pattern METHOD_FLAG_EDITOR = 2
+
+pattern BUTTON_MASK_RIGHT :: Int
+
+pattern BUTTON_MASK_RIGHT = 2
+
+pattern TYPE_STRING :: Int
+
+pattern TYPE_STRING = 4
+
+pattern ERR_BUG :: Int
+
+pattern ERR_BUG = 47
+
+pattern KEY_ASCIICIRCUM :: Int
+
+pattern KEY_ASCIICIRCUM = 94
+
+pattern JOY_DS_A :: Int
+
+pattern JOY_DS_A = 1
+
+pattern KEY_R :: Int
+
+pattern KEY_R = 82
+
+pattern JOY_DPAD_RIGHT :: Int
+
+pattern JOY_DPAD_RIGHT = 15
+
+pattern TYPE_VECTOR3 :: Int
+
+pattern TYPE_VECTOR3 = 7
+
+pattern ERR_DATABASE_CANT_READ :: Int
+
+pattern ERR_DATABASE_CANT_READ = 34
+
+pattern KEY_ICIRCUMFLEX :: Int
+
+pattern KEY_ICIRCUMFLEX = 206
+
+pattern JOY_SONY_CIRCLE :: Int
+
+pattern JOY_SONY_CIRCLE = 1
+
+pattern JOY_AXIS_2 :: Int
+
+pattern JOY_AXIS_2 = 2
+
+pattern KEY_E :: Int
+
+pattern KEY_E = 69
+
+pattern KEY_KP_1 :: Int
+
+pattern KEY_KP_1 = 16777351
+
+pattern PROPERTY_USAGE_NO_INSTANCE_STATE :: Int
+
+pattern PROPERTY_USAGE_NO_INSTANCE_STATE = 2048
+
+pattern KEY_5 :: Int
+
+pattern KEY_5 = 53
+
+pattern OP_NOT :: Int
+
+pattern OP_NOT = 23
+
+pattern KEY_MASK_KPAD :: Int
+
+pattern KEY_MASK_KPAD = 536870912
+
+pattern OP_XOR :: Int
+
+pattern OP_XOR = 22
+
+pattern KEY_META :: Int
+
+pattern KEY_META = 16777239
+
+pattern ERR_INVALID_PARAMETER :: Int
+
+pattern ERR_INVALID_PARAMETER = 31
+
+pattern KEY_LAUNCH0 :: Int
+
+pattern KEY_LAUNCH0 = 16777304
+
+pattern KEY_F3 :: Int
+
+pattern KEY_F3 = 16777246
+
+pattern OP_BIT_XOR :: Int
+
+pattern OP_BIT_XOR = 18
+
+pattern METHOD_FLAG_FROM_SCRIPT :: Int
+
+pattern METHOD_FLAG_FROM_SCRIPT = 64
+
+pattern KEY_KP_ADD :: Int
+
+pattern KEY_KP_ADD = 16777349
+
+pattern BUTTON_WHEEL_RIGHT :: Int
+
+pattern BUTTON_WHEEL_RIGHT = 7
+
+pattern TYPE_NODE_PATH :: Int
+
+pattern TYPE_NODE_PATH = 15
+
+pattern KEY_U :: Int
+
+pattern KEY_U = 85
+
+pattern ERR_UNCONFIGURED :: Int
+
+pattern ERR_UNCONFIGURED = 3
+
+pattern JOY_XBOX_Y :: Int
+
+pattern JOY_XBOX_Y = 3
+
+pattern PROPERTY_HINT_LENGTH :: Int
+
+pattern PROPERTY_HINT_LENGTH = 5
+
+pattern KEY_STOP :: Int
+
+pattern KEY_STOP = 16777282
+
+pattern ERR_UNAVAILABLE :: Int
+
+pattern ERR_UNAVAILABLE = 2
+
+pattern ERR_ALREADY_IN_USE :: Int
+
+pattern ERR_ALREADY_IN_USE = 22
+
+pattern JOY_DPAD_UP :: Int
+
+pattern JOY_DPAD_UP = 12
+
+pattern KEY_X :: Int
+
+pattern KEY_X = 88
+
+pattern KEY_QUOTEDBL :: Int
+
+pattern KEY_QUOTEDBL = 34
+
+pattern KEY_REGISTERED :: Int
+
+pattern KEY_REGISTERED = 174
+
+pattern KEY_H :: Int
+
+pattern KEY_H = 72
+
+pattern KEY_DIRECTION_R :: Int
+
+pattern KEY_DIRECTION_R = 16777267
+
+pattern KEY_RIGHT :: Int
+
+pattern KEY_RIGHT = 16777233
+
+pattern JOY_ANALOG_L2 :: Int
+
+pattern JOY_ANALOG_L2 = 6
+
+pattern JOY_BUTTON_2 :: Int
+
+pattern JOY_BUTTON_2 = 2
+
+pattern KEY_GUILLEMOTRIGHT :: Int
+
+pattern KEY_GUILLEMOTRIGHT = 187
+
+pattern PROPERTY_USAGE_RESTART_IF_CHANGED :: Int
+
+pattern PROPERTY_USAGE_RESTART_IF_CHANGED = 4096
+
+pattern KEY_MEDIAPLAY :: Int
+
+pattern KEY_MEDIAPLAY = 16777292
+
+pattern BUTTON_WHEEL_UP :: Int
+
+pattern BUTTON_WHEEL_UP = 4
+
+pattern KEY_8 :: Int
+
+pattern KEY_8 = 56
+
+pattern ERR_PARSE_ERROR :: Int
+
+pattern ERR_PARSE_ERROR = 43
+
+pattern KEY_KP_MULTIPLY :: Int
+
+pattern KEY_KP_MULTIPLY = 16777345
+
+pattern JOY_BUTTON_10 :: Int
+
+pattern JOY_BUTTON_10 = 10
+
+pattern KEY_EACUTE :: Int
+
+pattern KEY_EACUTE = 201
+
+pattern KEY_LAUNCH6 :: Int
+
+pattern KEY_LAUNCH6 = 16777310
+
+pattern KEY_F5 :: Int
+
+pattern KEY_F5 = 16777248
+
+pattern MIDI_MESSAGE_AFTERTOUCH :: Int
+
+pattern MIDI_MESSAGE_AFTERTOUCH = 10
+
+pattern KEY_UACUTE :: Int
+
+pattern KEY_UACUTE = 218
+
+pattern KEY_THREESUPERIOR :: Int
+
+pattern KEY_THREESUPERIOR = 179
+
+pattern TYPE_VECTOR3_ARRAY :: Int
+
+pattern TYPE_VECTOR3_ARRAY = 25
+
+pattern KEY_OCIRCUMFLEX :: Int
+
+pattern KEY_OCIRCUMFLEX = 212
+
+pattern KEY_LAUNCHF :: Int
+
+pattern KEY_LAUNCHF = 16777319
+
+pattern CORNER_BOTTOM_LEFT :: Int
+
+pattern CORNER_BOTTOM_LEFT = 3
+
+pattern PROPERTY_HINT_DIR :: Int
+
+pattern PROPERTY_HINT_DIR = 14
+
+pattern JOY_XBOX_B :: Int
+
+pattern JOY_XBOX_B = 1
+
+pattern KEY_ARING :: Int
+
+pattern KEY_ARING = 197
+
+pattern KEY_S :: Int
+
+pattern KEY_S = 83
+
+pattern KEY_SEMICOLON :: Int
+
+pattern KEY_SEMICOLON = 59
+
+pattern MIDI_MESSAGE_CHANNEL_PRESSURE :: Int
+
+pattern MIDI_MESSAGE_CHANNEL_PRESSURE = 13
+
+pattern KEY_BRACKETLEFT :: Int
+
+pattern KEY_BRACKETLEFT = 91
+
+pattern PROPERTY_HINT_FLAGS :: Int
+
+pattern PROPERTY_HINT_FLAGS = 8
+
+pattern OP_AND :: Int
+
+pattern OP_AND = 20
+
+pattern KEY_PARENLEFT :: Int
+
+pattern KEY_PARENLEFT = 40
+
+pattern PROPERTY_USAGE_EDITOR :: Int
+
+pattern PROPERTY_USAGE_EDITOR = 2
+
+pattern KEY_KP_7 :: Int
+
+pattern KEY_KP_7 = 16777357
+
+pattern JOY_AXIS_4 :: Int
+
+pattern JOY_AXIS_4 = 4
+
+pattern KEY_HYPER_R :: Int
+
+pattern KEY_HYPER_R = 16777264
+
+pattern KEY_C :: Int
+
+pattern KEY_C = 67
+
+pattern OP_BIT_AND :: Int
+
+pattern OP_BIT_AND = 16
+
+pattern JOY_R2 :: Int
+
+pattern JOY_R2 = 7
+
+pattern KEY_MEDIANEXT :: Int
+
+pattern KEY_MEDIANEXT = 16777295
+
+pattern KEY_BACK :: Int
+
+pattern KEY_BACK = 16777280
+
+pattern JOY_BUTTON_9 :: Int
+
+pattern JOY_BUTTON_9 = 9
+
+pattern KEY_MASK_SHIFT :: Int
+
+pattern KEY_MASK_SHIFT = 33554432
+
+pattern KEY_3 :: Int
+
+pattern KEY_3 = 51
+
+pattern KEY_SSHARP :: Int
+
+pattern KEY_SSHARP = 223
+
+pattern JOY_ANALOG_LY :: Int
+
+pattern JOY_ANALOG_LY = 1
+
+pattern KEY_SCROLLLOCK :: Int
+
+pattern KEY_SCROLLLOCK = 16777243
+
+pattern PROPERTY_HINT_GLOBAL_FILE :: Int
+
+pattern PROPERTY_HINT_GLOBAL_FILE = 15
+
+pattern KEY_CODE_MASK :: Int
+
+pattern KEY_CODE_MASK = 33554431
+
+pattern JOY_ANALOG_R2 :: Int
+
+pattern JOY_ANALOG_R2 = 7
+
+pattern ERR_LINK_FAILED :: Int
+
+pattern ERR_LINK_FAILED = 38
+
+pattern JOY_BUTTON_15 :: Int
+
+pattern JOY_BUTTON_15 = 15
+
+pattern KEY_LAUNCH3 :: Int
+
+pattern KEY_LAUNCH3 = 16777307
+
+pattern JOY_BUTTON_MAX :: Int
+
+pattern JOY_BUTTON_MAX = 16
+
+pattern PROPERTY_USAGE_CHECKABLE :: Int
+
+pattern PROPERTY_USAGE_CHECKABLE = 16
+
+pattern KEY_PAGEUP :: Int
+
+pattern KEY_PAGEUP = 16777235
+
+pattern METHOD_FLAG_CONST :: Int
+
+pattern METHOD_FLAG_CONST = 8
+
+pattern OP_STRING_CONCAT :: Int
+
+pattern OP_STRING_CONCAT = 13
+
+pattern TYPE_ARRAY :: Int
+
+pattern TYPE_ARRAY = 19
+
+pattern ERR_FILE_BAD_PATH :: Int
+
+pattern ERR_FILE_BAD_PATH = 9
+
+pattern KEY_LAUNCHC :: Int
+
+pattern KEY_LAUNCHC = 16777316
+
+pattern KEY_SEARCH :: Int
+
+pattern KEY_SEARCH = 16777299
+
+pattern KEY_IDIAERESIS :: Int
+
+pattern KEY_IDIAERESIS = 207
+
+pattern KEY_BACKSLASH :: Int
+
+pattern KEY_BACKSLASH = 92
+
+pattern KEY_DIRECTION_L :: Int
+
+pattern KEY_DIRECTION_L = 16777266
+
+pattern KEY_V :: Int
+
+pattern KEY_V = 86
+
+pattern KEY_YDIAERESIS :: Int
+
+pattern KEY_YDIAERESIS = 255
+
+pattern KEY_KP_2 :: Int
+
+pattern KEY_KP_2 = 16777352
+
+pattern JOY_AXIS_1 :: Int
+
+pattern JOY_AXIS_1 = 1
+
+pattern KEY_F :: Int
+
+pattern KEY_F = 70
+
+pattern KEY_BASSUP :: Int
+
+pattern KEY_BASSUP = 16777288
+
+pattern KEY_BASSBOOST :: Int
+
+pattern KEY_BASSBOOST = 16777287
+
+pattern KEY_NTILDE :: Int
+
+pattern KEY_NTILDE = 209
+
+pattern ERR_METHOD_NOT_FOUND :: Int
+
+pattern ERR_METHOD_NOT_FOUND = 37
+
+pattern KEY_IGRAVE :: Int
+
+pattern KEY_IGRAVE = 204
+
+pattern KEY_QUESTION :: Int
+
+pattern KEY_QUESTION = 63
+
+pattern KEY_6 :: Int
+
+pattern KEY_6 = 54
+
+pattern KEY_EXCLAM :: Int
+
+pattern KEY_EXCLAM = 33
+
+pattern KEY_KP_PERIOD :: Int
+
+pattern KEY_KP_PERIOD = 16777348
+
+pattern KEY_I :: Int
+
+pattern KEY_I = 73
+
+pattern KEY_ECIRCUMFLEX :: Int
+
+pattern KEY_ECIRCUMFLEX = 202
+
+pattern OP_ADD :: Int
+
+pattern OP_ADD = 6
+
+pattern ERR_FILE_MISSING_DEPENDENCIES :: Int
+
+pattern ERR_FILE_MISSING_DEPENDENCIES = 17
+
+pattern PROPERTY_HINT_LAYERS_2D_PHYSICS :: Int
+
+pattern PROPERTY_HINT_LAYERS_2D_PHYSICS = 10
+
+pattern JOY_BUTTON_3 :: Int
+
+pattern JOY_BUTTON_3 = 3
+
+pattern KEY_QUOTELEFT :: Int
+
+pattern KEY_QUOTELEFT = 96
+
+pattern ERR_FILE_CANT_WRITE :: Int
+
+pattern ERR_FILE_CANT_WRITE = 13
+
+pattern KEY_9 :: Int
+
+pattern KEY_9 = 57
+
+pattern HALIGN_CENTER :: Int
+
+pattern HALIGN_CENTER = 1
+
+pattern ERR_DOES_NOT_EXIST :: Int
+
+pattern ERR_DOES_NOT_EXIST = 33
+
+pattern TYPE_BOOL :: Int
+
+pattern TYPE_BOOL = 1
+
+pattern PROPERTY_USAGE_STORE_IF_NONONE :: Int
+
+pattern PROPERTY_USAGE_STORE_IF_NONONE = 1024
+
+pattern KEY_F16 :: Int
+
+pattern KEY_F16 = 16777259
+
+pattern PROPERTY_HINT_EXP_EASING :: Int
+
+pattern PROPERTY_HINT_EXP_EASING = 4
+
+pattern KEY_DIVISION :: Int
+
+pattern KEY_DIVISION = 247
+
+pattern KEY_DELETE :: Int
+
+pattern KEY_DELETE = 16777224
+
+pattern JOY_XBOX_X :: Int
+
+pattern JOY_XBOX_X = 2
+
+pattern KEY_BAR :: Int
+
+pattern KEY_BAR = 124
+
+pattern HALIGN_LEFT :: Int
+
+pattern HALIGN_LEFT = 0
+
+pattern JOY_SONY_TRIANGLE :: Int
+
+pattern JOY_SONY_TRIANGLE = 3
+
+pattern KEY_OACUTE :: Int
+
+pattern KEY_OACUTE = 211
+
+pattern MARGIN_RIGHT :: Int
+
+pattern MARGIN_RIGHT = 2
+
+pattern KEY_SECTION :: Int
+
+pattern KEY_SECTION = 167
+
+pattern ERR_TIMEOUT :: Int
+
+pattern ERR_TIMEOUT = 24
+
+pattern BUTTON_RIGHT :: Int
+
+pattern BUTTON_RIGHT = 2
+
+pattern KEY_Y :: Int
+
+pattern KEY_Y = 89
+
+pattern ERR_SCRIPT_FAILED :: Int
+
+pattern ERR_SCRIPT_FAILED = 39
+
+pattern KEY_ETH :: Int
+
+pattern KEY_ETH = 208
+
+pattern KEY_ALT :: Int
+
+pattern KEY_ALT = 16777240
+
+pattern JOY_R :: Int
+
+pattern JOY_R = 5
+
+pattern KEY_UCIRCUMFLEX :: Int
+
+pattern KEY_UCIRCUMFLEX = 219
+
+pattern OP_LESS :: Int
+
+pattern OP_LESS = 2
+
+pattern ERR_INVALID_DATA :: Int
+
+pattern ERR_INVALID_DATA = 30
+
+pattern ERR_OUT_OF_MEMORY :: Int
+
+pattern ERR_OUT_OF_MEMORY = 6
+
+pattern KEY_HOMEPAGE :: Int
+
+pattern KEY_HOMEPAGE = 16777297
+
+pattern OP_SUBTRACT :: Int
+
+pattern OP_SUBTRACT = 7
+
+pattern KEY_KP_8 :: Int
+
+pattern KEY_KP_8 = 16777358
+
+pattern JOY_ANALOG_RX :: Int
+
+pattern JOY_ANALOG_RX = 2
+
+pattern KEY_L :: Int
+
+pattern KEY_L = 76
+
+pattern KEY_MEDIASTOP :: Int
+
+pattern KEY_MEDIASTOP = 16777293
+
+pattern MIDI_MESSAGE_NOTE_ON :: Int
+
+pattern MIDI_MESSAGE_NOTE_ON = 9
+
+pattern KEY_MULTIPLY :: Int
+
+pattern KEY_MULTIPLY = 215
+
+pattern KEY_STERLING :: Int
+
+pattern KEY_STERLING = 163
+
+pattern OP_NEGATE :: Int
+
+pattern OP_NEGATE = 10
+
+pattern JOY_BUTTON_6 :: Int
+
+pattern JOY_BUTTON_6 = 6
+
+pattern PROPERTY_HINT_COLOR_NO_ALPHA :: Int
+
+pattern PROPERTY_HINT_COLOR_NO_ALPHA = 20
+
+pattern KEY_AE :: Int
+
+pattern KEY_AE = 198
+
+pattern KEY_MINUS :: Int
+
+pattern KEY_MINUS = 45
+
+pattern BUTTON_MIDDLE :: Int
+
+pattern BUTTON_MIDDLE = 3
+
+pattern KEY_F13 :: Int
+
+pattern KEY_F13 = 16777256
+
+pattern KEY_LAUNCH9 :: Int
+
+pattern KEY_LAUNCH9 = 16777313
+
+pattern KEY_EXCLAMDOWN :: Int
+
+pattern KEY_EXCLAMDOWN = 161
+
+pattern ERR_PARAMETER_RANGE_ERROR :: Int
+
+pattern ERR_PARAMETER_RANGE_ERROR = 5
+
+pattern KEY_QUESTIONDOWN :: Int
+
+pattern KEY_QUESTIONDOWN = 191
+
+pattern TYPE_COLOR_ARRAY :: Int
+
+pattern TYPE_COLOR_ARRAY = 26
+
+pattern KEY_EQUAL :: Int
+
+pattern KEY_EQUAL = 61
+
+pattern OP_BIT_NEGATE :: Int
+
+pattern OP_BIT_NEGATE = 19
+
+pattern JOY_L3 :: Int
+
+pattern JOY_L3 = 8
+
+pattern OP_SHIFT_LEFT :: Int
+
+pattern OP_SHIFT_LEFT = 14
+
+pattern KEY_SPACE :: Int
+
+pattern KEY_SPACE = 32
+
+pattern PROPERTY_USAGE_STORE_IF_NONZERO :: Int
+
+pattern PROPERTY_USAGE_STORE_IF_NONZERO = 512
+
+pattern CORNER_TOP_LEFT :: Int
+
+pattern CORNER_TOP_LEFT = 0
+
+pattern KEY_HOME :: Int
+
+pattern KEY_HOME = 16777229
+
+pattern KEY_MASCULINE :: Int
+
+pattern KEY_MASCULINE = 186
+
+pattern ERR_COMPILATION_FAILED :: Int
+
+pattern ERR_COMPILATION_FAILED = 36
+
+pattern KEY_W :: Int
+
+pattern KEY_W = 87
+
+pattern VALIGN_CENTER :: Int
+
+pattern VALIGN_CENTER = 1
+
+pattern KEY_KP_3 :: Int
+
+pattern KEY_KP_3 = 16777353
+
+pattern PROPERTY_HINT_GLOBAL_DIR :: Int
+
+pattern PROPERTY_HINT_GLOBAL_DIR = 16
+
+pattern JOY_AXIS_0 :: Int
+
+pattern JOY_AXIS_0 = 0
+
+pattern KEY_G :: Int
+
+pattern KEY_G = 71
+
+pattern TYPE_DICTIONARY :: Int
+
+pattern TYPE_DICTIONARY = 18
+
+pattern KEY_FAVORITES :: Int
+
+pattern KEY_FAVORITES = 16777298
+
+pattern JOY_L :: Int
+
+pattern JOY_L = 4
+
+pattern KEY_DIAERESIS :: Int
+
+pattern KEY_DIAERESIS = 168
+
+pattern PROPERTY_HINT_IMAGE_COMPRESS_LOSSY :: Int
+
+pattern PROPERTY_HINT_IMAGE_COMPRESS_LOSSY = 21
+
+pattern KEY_ONEHALF :: Int
+
+pattern KEY_ONEHALF = 189
+
+pattern KEY_7 :: Int
+
+pattern KEY_7 = 55
+
+pattern KEY_INSERT :: Int
+
+pattern KEY_INSERT = 16777223
+
+pattern KEY_STANDBY :: Int
+
+pattern KEY_STANDBY = 16777300
+
+pattern OP_IN :: Int
+
+pattern OP_IN = 24
+
+pattern PROPERTY_HINT_ENUM :: Int
+
+pattern PROPERTY_HINT_ENUM = 3
+
+pattern KEY_BACKSPACE :: Int
+
+pattern KEY_BACKSPACE = 16777220
+
+pattern TYPE_AABB :: Int
+
+pattern TYPE_AABB = 11
+
+pattern KEY_KP_DIVIDE :: Int
+
+pattern KEY_KP_DIVIDE = 16777346
+
+pattern JOY_BUTTON_14 :: Int
+
+pattern JOY_BUTTON_14 = 14
+
+pattern OP_SHIFT_RIGHT :: Int
+
+pattern OP_SHIFT_RIGHT = 15
+
+pattern KEY_LAUNCH2 :: Int
+
+pattern KEY_LAUNCH2 = 16777306
+
+pattern KEY_F1 :: Int
+
+pattern KEY_F1 = 16777244
+
+pattern KEY_CONTROL :: Int
+
+pattern KEY_CONTROL = 16777238
+
+pattern KEY_AACUTE :: Int
+
+pattern KEY_AACUTE = 193
+
+pattern KEY_SYSREQ :: Int
+
+pattern KEY_SYSREQ = 16777227
+
+pattern KEY_LAUNCHB :: Int
+
+pattern KEY_LAUNCHB = 16777315
+
+pattern PROPERTY_USAGE_CATEGORY :: Int
+
+pattern PROPERTY_USAGE_CATEGORY = 256
+
+pattern PROPERTY_USAGE_INTERNATIONALIZED :: Int
+
+pattern PROPERTY_USAGE_INTERNATIONALIZED = 64
+
+pattern TYPE_OBJECT :: Int
+
+pattern TYPE_OBJECT = 17
+
+pattern KEY_CAPSLOCK :: Int
+
+pattern KEY_CAPSLOCK = 16777241
+
+pattern KEY_UGRAVE :: Int
+
+pattern KEY_UGRAVE = 217
+
+pattern JOY_DS_Y :: Int
+
+pattern JOY_DS_Y = 2
+
+pattern KEY_CEDILLA :: Int
+
+pattern KEY_CEDILLA = 184
+
+pattern KEY_ORDFEMININE :: Int
+
+pattern KEY_ORDFEMININE = 170
+
+pattern KEY_Z :: Int
+
+pattern KEY_Z = 90
+
+pattern PROPERTY_USAGE_EDITOR_HELPER :: Int
+
+pattern PROPERTY_USAGE_EDITOR_HELPER = 8
+
+pattern ERR_CYCLIC_LINK :: Int
+
+pattern ERR_CYCLIC_LINK = 40
+
+pattern KEY_EGRAVE :: Int
+
+pattern KEY_EGRAVE = 200
+
+pattern KEY_DOWN :: Int
+
+pattern KEY_DOWN = 16777234
+
+pattern OP_MODULE :: Int
+
+pattern OP_MODULE = 12
+
+pattern KEY_MASK_ALT :: Int
+
+pattern KEY_MASK_ALT = 67108864
+
+pattern KEY_J :: Int
+
+pattern KEY_J = 74
+
+pattern KEY_SUPER_L :: Int
+
+pattern KEY_SUPER_L = 16777260
+
+pattern HALIGN_RIGHT :: Int
+
+pattern HALIGN_RIGHT = 2
+
+pattern JOY_BUTTON_0 :: Int
+
+pattern JOY_BUTTON_0 = 0
+
+pattern KEY_TREBLEDOWN :: Int
+
+pattern KEY_TREBLEDOWN = 16777291
+
+pattern KEY_EDIAERESIS :: Int
+
+pattern KEY_EDIAERESIS = 203
+
+pattern KEY_MASK_CTRL :: Int
+
+pattern KEY_MASK_CTRL = 268435456
+
+pattern OP_GREATER :: Int
+
+pattern OP_GREATER = 4
+
+pattern KEY_HYPHEN :: Int
+
+pattern KEY_HYPHEN = 173
+
+pattern KEY_YEN :: Int
+
+pattern KEY_YEN = 165
+
+pattern ERR_DATABASE_CANT_WRITE :: Int
+
+pattern ERR_DATABASE_CANT_WRITE = 35
+
+pattern TYPE_COLOR :: Int
+
+pattern TYPE_COLOR = 14
+
+pattern VERTICAL :: Int
+
+pattern VERTICAL = 1
+
+pattern KEY_VOLUMEDOWN :: Int
+
+pattern KEY_VOLUMEDOWN = 16777284
+
+pattern KEY_F15 :: Int
+
+pattern KEY_F15 = 16777258
+
+pattern KEY_UDIAERESIS :: Int
+
+pattern KEY_UDIAERESIS = 220
+
+pattern KEY_REFRESH :: Int
+
+pattern KEY_REFRESH = 16777283
+
+pattern KEY_SLASH :: Int
+
+pattern KEY_SLASH = 47
+
+pattern PROPERTY_HINT_PLACEHOLDER_TEXT :: Int
+
+pattern PROPERTY_HINT_PLACEHOLDER_TEXT = 19
+
+pattern KEY_F12 :: Int
+
+pattern KEY_F12 = 16777255
+
+pattern PROPERTY_USAGE_GROUP :: Int
+
+pattern PROPERTY_USAGE_GROUP = 128
+
+pattern OP_OR :: Int
+
+pattern OP_OR = 21
+
+pattern KEY_COPYRIGHT :: Int
+
+pattern KEY_COPYRIGHT = 169
+
+pattern KEY_LAUNCH8 :: Int
+
+pattern KEY_LAUNCH8 = 16777312
+
+pattern PROPERTY_USAGE_CHECKED :: Int
+
+pattern PROPERTY_USAGE_CHECKED = 32
+
+pattern OP_BIT_OR :: Int
+
+pattern OP_BIT_OR = 17
+
+pattern KEY_COMMA :: Int
+
+pattern KEY_COMMA = 44
+
+pattern TYPE_BASIS :: Int
+
+pattern TYPE_BASIS = 12
+
+pattern KEY_NUMLOCK :: Int
+
+pattern KEY_NUMLOCK = 16777242
+
+pattern KEY_VOLUMEUP :: Int
+
+pattern KEY_VOLUMEUP = 16777286
+
+pattern METHOD_FLAG_NOSCRIPT :: Int
+
+pattern METHOD_FLAG_NOSCRIPT = 4
+
+pattern JOY_L2 :: Int
+
+pattern JOY_L2 = 6
+
+pattern TYPE_REAL :: Int
+
+pattern TYPE_REAL = 3
+
+pattern TYPE_TRANSFORM2D :: Int
+
+pattern TYPE_TRANSFORM2D = 8
+
+pattern KEY_HYPER_L :: Int
+
+pattern KEY_HYPER_L = 16777263
+
+pattern KEY_UP :: Int
+
+pattern KEY_UP = 16777232
+
+pattern TYPE_RAW_ARRAY :: Int
+
+pattern TYPE_RAW_ARRAY = 20
+
+pattern KEY_PERIOD :: Int
+
+pattern KEY_PERIOD = 46
+
+pattern KEY_ACIRCUMFLEX :: Int
+
+pattern KEY_ACIRCUMFLEX = 194
+
+pattern TYPE_RECT2 :: Int
+
+pattern TYPE_RECT2 = 6
+
+pattern KEY_KP_9 :: Int
+
+pattern KEY_KP_9 = 16777359
+
+pattern JOY_ANALOG_RY :: Int
+
+pattern JOY_ANALOG_RY = 3
+
+pattern KEY_M :: Int
+
+pattern KEY_M = 77
+
+pattern KEY_MEDIAPREVIOUS :: Int
+
+pattern KEY_MEDIAPREVIOUS = 16777294
+
+pattern KEY_AT :: Int
+
+pattern KEY_AT = 64
+
+pattern KEY_TREBLEUP :: Int
+
+pattern KEY_TREBLEUP = 16777290
+
+pattern JOY_BUTTON_7 :: Int
+
+pattern JOY_BUTTON_7 = 7
+
+pattern BUTTON_MASK_XBUTTON1 :: Int
+
+pattern BUTTON_MASK_XBUTTON1 = 128
+
+pattern BUTTON_XBUTTON2 :: Int
+
+pattern BUTTON_XBUTTON2 = 9
+
+pattern KEY_0 :: Int
+
+pattern KEY_0 = 48
+
+pattern KEY_UNDERSCORE :: Int
+
+pattern KEY_UNDERSCORE = 95
+
+pattern PROPERTY_HINT_LAYERS_2D_RENDER :: Int
+
+pattern PROPERTY_HINT_LAYERS_2D_RENDER = 9
+
+pattern KEY_ENTER :: Int
+
+pattern KEY_ENTER = 16777221
+
+pattern KEY_ASTERISK :: Int
+
+pattern KEY_ASTERISK = 42
+
+pattern KEY_UNKNOWN :: Int
+
+pattern KEY_UNKNOWN = 33554431
+
+pattern KEY_PARENRIGHT :: Int
+
+pattern KEY_PARENRIGHT = 41
+
+pattern JOY_BUTTON_13 :: Int
+
+pattern JOY_BUTTON_13 = 13
+
+pattern PROPERTY_HINT_LAYERS_3D_PHYSICS :: Int
+
+pattern PROPERTY_HINT_LAYERS_3D_PHYSICS = 12
+
+pattern KEY_LAUNCH5 :: Int
+
+pattern KEY_LAUNCH5 = 16777309
+
+pattern KEY_F6 :: Int
+
+pattern KEY_F6 = 16777249
+
+pattern CORNER_BOTTOM_RIGHT :: Int
+
+pattern CORNER_BOTTOM_RIGHT = 2
+
+pattern ERR_FILE_CANT_OPEN :: Int
+
+pattern ERR_FILE_CANT_OPEN = 12
+
+pattern KEY_LAUNCHE :: Int
+
+pattern KEY_LAUNCHE = 16777318
+
+pattern KEY_NUMBERSIGN :: Int
+
+pattern KEY_NUMBERSIGN = 35
+
+pattern JOY_XBOX_A :: Int
+
+pattern JOY_XBOX_A = 0
+
+pattern KEY_KP_SUBTRACT :: Int
+
+pattern KEY_KP_SUBTRACT = 16777347
+
+pattern KEY_SHIFT :: Int
+
+pattern KEY_SHIFT = 16777237
+
+pattern KEY_P :: Int
+
+pattern KEY_P = 80
+
+pattern ERR_CANT_ACQUIRE_RESOURCE :: Int
+
+pattern ERR_CANT_ACQUIRE_RESOURCE = 28
+
+pattern METHOD_FLAG_NORMAL :: Int
+
+pattern METHOD_FLAG_NORMAL = 1
+
+pattern KEY_OGRAVE :: Int
+
+pattern KEY_OGRAVE = 210
+
+pattern TYPE_RID :: Int
+
+pattern TYPE_RID = 16
+
+pattern KEY_ODIAERESIS :: Int
+
+pattern KEY_ODIAERESIS = 214
+
+pattern ERR_FILE_UNRECOGNIZED :: Int
+
+pattern ERR_FILE_UNRECOGNIZED = 15
+
+pattern KEY_DOLLAR :: Int
+
+pattern KEY_DOLLAR = 36
+
+pattern KEY_KP_4 :: Int
+
+pattern KEY_KP_4 = 16777354
+
+pattern JOY_AXIS_7 :: Int
+
+pattern JOY_AXIS_7 = 7
+
+pattern KEY_BRACKETRIGHT :: Int
+
+pattern KEY_BRACKETRIGHT = 93
+
+pattern KEY_MU :: Int
+
+pattern KEY_MU = 181
+
+pattern KEY_ONEQUARTER :: Int
+
+pattern KEY_ONEQUARTER = 188
+
+pattern ERR_LOCKED :: Int
+
+pattern ERR_LOCKED = 23
+
+pattern TYPE_REAL_ARRAY :: Int
+
+pattern TYPE_REAL_ARRAY = 22
+
+pattern ERR_ALREADY_EXISTS :: Int
+
+pattern ERR_ALREADY_EXISTS = 32
+
+pattern ERR_HELP :: Int
+
+pattern ERR_HELP = 46
+
+pattern PROPERTY_USAGE_STORAGE :: Int
+
+pattern PROPERTY_USAGE_STORAGE = 1
+
+pattern JOY_START :: Int
+
+pattern JOY_START = 11
+
+pattern KEY_K :: Int
+
+pattern KEY_K = 75
+
+pattern OP_DIVIDE :: Int
+
+pattern OP_DIVIDE = 9
+
+pattern FAILED :: Int
+
+pattern FAILED = 1
+
+pattern JOY_BUTTON_1 :: Int
+
+pattern JOY_BUTTON_1 = 1
+
+pattern KEY_PERCENT :: Int
+
+pattern KEY_PERCENT = 37
+
+pattern PROPERTY_HINT_RANGE :: Int
+
+pattern PROPERTY_HINT_RANGE = 1
+
+pattern KEY_LEFT :: Int
+
+pattern KEY_LEFT = 16777231
+
+pattern KEY_F14 :: Int
+
+pattern KEY_F14 = 16777257
+
+pattern METHOD_FLAGS_DEFAULT :: Int
+
+pattern METHOD_FLAGS_DEFAULT = 1
+
+pattern JOY_AXIS_MAX :: Int
+
+pattern JOY_AXIS_MAX = 10
+
+pattern METHOD_FLAG_REVERSE :: Int
+
+pattern METHOD_FLAG_REVERSE = 16
+
+pattern KEY_GUILLEMOTLEFT :: Int
+
+pattern KEY_GUILLEMOTLEFT = 171
+
+pattern TYPE_TRANSFORM :: Int
+
+pattern TYPE_TRANSFORM = 13
+
+pattern JOY_DS_X :: Int
+
+pattern JOY_DS_X = 3
+
+pattern OP_POSITIVE :: Int
+
+pattern OP_POSITIVE = 11
+
+pattern KEY_FORWARD :: Int
+
+pattern KEY_FORWARD = 16777281
+
+pattern KEY_AMPERSAND :: Int
+
+pattern KEY_AMPERSAND = 38
+
+pattern TYPE_MAX :: Int
+
+pattern TYPE_MAX = 27
+
+pattern KEY_MENU :: Int
+
+pattern KEY_MENU = 16777262
+
+pattern JOY_SELECT :: Int
+
+pattern JOY_SELECT = 10
+
+pattern VALIGN_BOTTOM :: Int
+
+pattern VALIGN_BOTTOM = 2
+
+pattern ERR_UNAUTHORIZED :: Int
+
+pattern ERR_UNAUTHORIZED = 4
+
+pattern JOY_DPAD_LEFT :: Int
+
+pattern JOY_DPAD_LEFT = 14
+
+pattern KEY_PARAGRAPH :: Int
+
+pattern KEY_PARAGRAPH = 182
+
+pattern KEY_NOTSIGN :: Int
+
+pattern KEY_NOTSIGN = 172
+
+pattern TYPE_QUAT :: Int
+
+pattern TYPE_QUAT = 10
+
+pattern KEY_N :: Int
+
+pattern KEY_N = 78
+
+pattern ERR_FILE_CANT_READ :: Int
+
+pattern ERR_FILE_CANT_READ = 14
+
+pattern JOY_AXIS_9 :: Int
+
+pattern JOY_AXIS_9 = 9
+
+pattern KEY_AGRAVE :: Int
+
+pattern KEY_AGRAVE = 192
+
+pattern JOY_BUTTON_4 :: Int
+
+pattern JOY_BUTTON_4 = 4
+
+pattern KEY_BROKENBAR :: Int
+
+pattern KEY_BROKENBAR = 166
+
+pattern ERR_FILE_NO_PERMISSION :: Int
+
+pattern ERR_FILE_NO_PERMISSION = 10
+
+pattern BUTTON_WHEEL_LEFT :: Int
+
+pattern BUTTON_WHEEL_LEFT = 6
+
+pattern BUTTON_MASK_XBUTTON2 :: Int
+
+pattern BUTTON_MASK_XBUTTON2 = 256
+
+pattern KEY_PLUSMINUS :: Int
+
+pattern KEY_PLUSMINUS = 177
+
+pattern JOY_SONY_SQUARE :: Int
+
+pattern JOY_SONY_SQUARE = 2
+
+pattern ERR_FILE_CORRUPT :: Int
+
+pattern ERR_FILE_CORRUPT = 16
+
+pattern BUTTON_XBUTTON1 :: Int
+
+pattern BUTTON_XBUTTON1 = 8
+
+pattern KEY_F11 :: Int
+
+pattern KEY_F11 = 16777254
+
+pattern OP_NOT_EQUAL :: Int
+
+pattern OP_NOT_EQUAL = 1
+
+pattern KEY_OOBLIQUE :: Int
+
+pattern KEY_OOBLIQUE = 216
+
+pattern MIDI_MESSAGE_PITCH_BEND :: Int
+
+pattern MIDI_MESSAGE_PITCH_BEND = 14
+
+pattern HORIZONTAL :: Int
+
+pattern HORIZONTAL = 0
+
+pattern KEY_ACUTE :: Int
+
+pattern KEY_ACUTE = 180
+
+pattern KEY_F8 :: Int
+
+pattern KEY_F8 = 16777251
+
+pattern KEY_ADIAERESIS :: Int
+
+pattern KEY_ADIAERESIS = 196
+
+pattern MARGIN_BOTTOM :: Int
+
+pattern MARGIN_BOTTOM = 3
+
+pattern PROPERTY_HINT_NONE :: Int
+
+pattern PROPERTY_HINT_NONE = 0
+
+pattern KEY_MASK_META :: Int
+
+pattern KEY_MASK_META = 134217728
+
+pattern KEY_MASK_GROUP_SWITCH :: Int
+
+pattern KEY_MASK_GROUP_SWITCH = 1073741824
+
+pattern KEY_COLON :: Int
+
+pattern KEY_COLON = 58
+
+pattern KEY_HELP :: Int
+
+pattern KEY_HELP = 16777265
+
+pattern KEY_LAUNCHD :: Int
+
+pattern KEY_LAUNCHD = 16777317
+
+pattern KEY_ONESUPERIOR :: Int
+
+pattern KEY_ONESUPERIOR = 185
+
+pattern KEY_BASSDOWN :: Int
+
+pattern KEY_BASSDOWN = 16777289
+
+pattern KEY_ATILDE :: Int
+
+pattern KEY_ATILDE = 195
+
+pattern PROPERTY_HINT_MULTILINE_TEXT :: Int
+
+pattern PROPERTY_HINT_MULTILINE_TEXT = 18
+
+pattern KEY_LAUNCHMEDIA :: Int
+
+pattern KEY_LAUNCHMEDIA = 16777303
+
+pattern JOY_DS_B :: Int
+
+pattern JOY_DS_B = 0
+
+pattern KEY_MEDIARECORD :: Int
+
+pattern KEY_MEDIARECORD = 16777296
+
+pattern KEY_Q :: Int
+
+pattern KEY_Q = 81
+
+pattern BUTTON_MASK_LEFT :: Int
+
+pattern BUTTON_MASK_LEFT = 1
+
+pattern KEY_CCEDILLA :: Int
+
+pattern KEY_CCEDILLA = 199
+
+pattern ERR_CANT_CREATE :: Int
+
+pattern ERR_CANT_CREATE = 20
+
+pattern PROPERTY_HINT_EXP_RANGE :: Int
+
+pattern PROPERTY_HINT_EXP_RANGE = 2
+
+pattern OP_GREATER_EQUAL :: Int
+
+pattern OP_GREATER_EQUAL = 5
+
+pattern KEY_KP_5 :: Int
+
+pattern KEY_KP_5 = 16777355
+
+pattern KEY_APOSTROPHE :: Int
+
+pattern KEY_APOSTROPHE = 39
+
+pattern JOY_AXIS_6 :: Int
+
+pattern JOY_AXIS_6 = 6
+
+pattern KEY_A :: Int
+
+pattern KEY_A = 65
+
+pattern KEY_THREEQUARTERS :: Int
+
+pattern KEY_THREEQUARTERS = 190
+
+pattern PROPERTY_USAGE_DEFAULT :: Int
+
+pattern PROPERTY_USAGE_DEFAULT = 7
+
+pattern KEY_LESS :: Int
+
+pattern KEY_LESS = 60
+
+pattern KEY_CLEAR :: Int
+
+pattern KEY_CLEAR = 16777228
+
+pattern PROPERTY_HINT_RESOURCE_TYPE :: Int
+
+pattern PROPERTY_HINT_RESOURCE_TYPE = 17
+
+pattern KEY_ESCAPE :: Int
+
+pattern KEY_ESCAPE = 16777217
+
+pattern KEY_1 :: Int
+
+pattern KEY_1 = 49
+
+pattern KEY_PAGEDOWN :: Int
+
+pattern KEY_PAGEDOWN = 16777236
+
+pattern KEY_TWOSUPERIOR :: Int
+
+pattern KEY_TWOSUPERIOR = 178
+
+pattern PROPERTY_HINT_LAYERS_3D_RENDER :: Int
+
+pattern PROPERTY_HINT_LAYERS_3D_RENDER = 11
+
+pattern PROPERTY_USAGE_DEFAULT_INTL :: Int
+
+pattern PROPERTY_USAGE_DEFAULT_INTL = 71
+
+pattern TYPE_PLANE :: Int
+
+pattern TYPE_PLANE = 9
+
+pattern JOY_BUTTON_12 :: Int
+
+pattern JOY_BUTTON_12 = 12
+
+pattern KEY_PRINT :: Int
+
+pattern KEY_PRINT = 16777226
+
+pattern ERR_FILE_ALREADY_IN_USE :: Int
+
+pattern ERR_FILE_ALREADY_IN_USE = 11
+
+pattern KEY_LAUNCH4 :: Int
+
+pattern KEY_LAUNCH4 = 16777308
+
+pattern KEY_F7 :: Int
+
+pattern KEY_F7 = 16777250
+
+pattern KEY_ASCIITILDE :: Int
+
+pattern KEY_ASCIITILDE = 126
+
+pattern KEY_MASK_CMD :: Int
+
+pattern KEY_MASK_CMD = 268435456
+
+pattern KEY_VOLUMEMUTE :: Int
+
+pattern KEY_VOLUMEMUTE = 16777285
+
+pattern ERR_CANT_OPEN :: Int
+
+pattern ERR_CANT_OPEN = 19
diff --git a/src/Godot/Core/GodotGradient.hs b/src/Godot/Core/GodotGradient.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGradient.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotGradient where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotGradientTexture.hs b/src/Godot/Core/GodotGradientTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGradientTexture.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotGradientTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotGraphEdit.hs b/src/Godot/Core/GodotGraphEdit.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGraphEdit.hs
@@ -0,0 +1,38 @@
+module Godot.Core.GodotGraphEdit where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+delete_nodes_request :: Signal GodotGraphEdit
+delete_nodes_request = Signal "delete_nodes_request"
+
+duplicate_nodes_request :: Signal GodotGraphEdit
+duplicate_nodes_request = Signal "duplicate_nodes_request"
+
+popup_request :: Signal GodotGraphEdit
+popup_request = Signal "popup_request"
+
+scroll_offset_changed :: Signal GodotGraphEdit
+scroll_offset_changed = Signal "scroll_offset_changed"
+
+node_selected :: Signal GodotGraphEdit
+node_selected = Signal "node_selected"
+
+_begin_node_move :: Signal GodotGraphEdit
+_begin_node_move = Signal "_begin_node_move"
+
+connection_to_empty :: Signal GodotGraphEdit
+connection_to_empty = Signal "connection_to_empty"
+
+disconnection_request :: Signal GodotGraphEdit
+disconnection_request = Signal "disconnection_request"
+
+connection_request :: Signal GodotGraphEdit
+connection_request = Signal "connection_request"
+
+_end_node_move :: Signal GodotGraphEdit
+_end_node_move = Signal "_end_node_move"
diff --git a/src/Godot/Core/GodotGraphNode.hs b/src/Godot/Core/GodotGraphNode.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGraphNode.hs
@@ -0,0 +1,35 @@
+module Godot.Core.GodotGraphNode where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern OVERLAY_DISABLED :: Int
+
+pattern OVERLAY_DISABLED = 0
+
+pattern OVERLAY_POSITION :: Int
+
+pattern OVERLAY_POSITION = 2
+
+pattern OVERLAY_BREAKPOINT :: Int
+
+pattern OVERLAY_BREAKPOINT = 1
+
+raise_request :: Signal GodotGraphNode
+raise_request = Signal "raise_request"
+
+close_request :: Signal GodotGraphNode
+close_request = Signal "close_request"
+
+dragged :: Signal GodotGraphNode
+dragged = Signal "dragged"
+
+offset_changed :: Signal GodotGraphNode
+offset_changed = Signal "offset_changed"
+
+resize_request :: Signal GodotGraphNode
+resize_request = Signal "resize_request"
diff --git a/src/Godot/Core/GodotGridContainer.hs b/src/Godot/Core/GodotGridContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGridContainer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotGridContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotGridMap.hs b/src/Godot/Core/GodotGridMap.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGridMap.hs
@@ -0,0 +1,12 @@
+module Godot.Core.GodotGridMap where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern INVALID_CELL_ITEM :: Int
+
+pattern INVALID_CELL_ITEM = -1
diff --git a/src/Godot/Core/GodotGrooveJoint2D.hs b/src/Godot/Core/GodotGrooveJoint2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotGrooveJoint2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotGrooveJoint2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotHBoxContainer.hs b/src/Godot/Core/GodotHBoxContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotHBoxContainer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotHBoxContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotHScrollBar.hs b/src/Godot/Core/GodotHScrollBar.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotHScrollBar.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotHScrollBar where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotHSeparator.hs b/src/Godot/Core/GodotHSeparator.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotHSeparator.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotHSeparator where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotHSlider.hs b/src/Godot/Core/GodotHSlider.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotHSlider.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotHSlider where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotHSplitContainer.hs b/src/Godot/Core/GodotHSplitContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotHSplitContainer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotHSplitContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotHTTPClient.hs b/src/Godot/Core/GodotHTTPClient.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotHTTPClient.hs
@@ -0,0 +1,332 @@
+module Godot.Core.GodotHTTPClient where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern STATUS_CONNECTED :: Int
+
+pattern STATUS_CONNECTED = 5
+
+pattern RESPONSE_CREATED :: Int
+
+pattern RESPONSE_CREATED = 201
+
+pattern RESPONSE_SWITCHING_PROTOCOLS :: Int
+
+pattern RESPONSE_SWITCHING_PROTOCOLS = 101
+
+pattern RESPONSE_PRECONDITION_FAILED :: Int
+
+pattern RESPONSE_PRECONDITION_FAILED = 412
+
+pattern RESPONSE_USE_PROXY :: Int
+
+pattern RESPONSE_USE_PROXY = 305
+
+pattern RESPONSE_SEE_OTHER :: Int
+
+pattern RESPONSE_SEE_OTHER = 303
+
+pattern RESPONSE_FAILED_DEPENDENCY :: Int
+
+pattern RESPONSE_FAILED_DEPENDENCY = 424
+
+pattern RESPONSE_GONE :: Int
+
+pattern RESPONSE_GONE = 410
+
+pattern RESPONSE_FORBIDDEN :: Int
+
+pattern RESPONSE_FORBIDDEN = 403
+
+pattern RESPONSE_INSUFFICIENT_STORAGE :: Int
+
+pattern RESPONSE_INSUFFICIENT_STORAGE = 507
+
+pattern RESPONSE_NOT_MODIFIED :: Int
+
+pattern RESPONSE_NOT_MODIFIED = 304
+
+pattern RESPONSE_CONFLICT :: Int
+
+pattern RESPONSE_CONFLICT = 409
+
+pattern RESPONSE_REQUEST_URI_TOO_LONG :: Int
+
+pattern RESPONSE_REQUEST_URI_TOO_LONG = 414
+
+pattern STATUS_RESOLVING :: Int
+
+pattern STATUS_RESOLVING = 1
+
+pattern STATUS_CONNECTION_ERROR :: Int
+
+pattern STATUS_CONNECTION_ERROR = 8
+
+pattern RESPONSE_ALREADY_REPORTED :: Int
+
+pattern RESPONSE_ALREADY_REPORTED = 208
+
+pattern RESPONSE_TEMPORARY_REDIRECT :: Int
+
+pattern RESPONSE_TEMPORARY_REDIRECT = 307
+
+pattern STATUS_CANT_CONNECT :: Int
+
+pattern STATUS_CANT_CONNECT = 4
+
+pattern STATUS_CONNECTING :: Int
+
+pattern STATUS_CONNECTING = 3
+
+pattern RESPONSE_BAD_REQUEST :: Int
+
+pattern RESPONSE_BAD_REQUEST = 400
+
+pattern RESPONSE_UNSUPPORTED_MEDIA_TYPE :: Int
+
+pattern RESPONSE_UNSUPPORTED_MEDIA_TYPE = 415
+
+pattern RESPONSE_SWITCH_PROXY :: Int
+
+pattern RESPONSE_SWITCH_PROXY = 306
+
+pattern STATUS_CANT_RESOLVE :: Int
+
+pattern STATUS_CANT_RESOLVE = 2
+
+pattern RESPONSE_NOT_IMPLEMENTED :: Int
+
+pattern RESPONSE_NOT_IMPLEMENTED = 501
+
+pattern RESPONSE_REQUEST_ENTITY_TOO_LARGE :: Int
+
+pattern RESPONSE_REQUEST_ENTITY_TOO_LARGE = 413
+
+pattern METHOD_OPTIONS :: Int
+
+pattern METHOD_OPTIONS = 5
+
+pattern RESPONSE_NON_AUTHORITATIVE_INFORMATION :: Int
+
+pattern RESPONSE_NON_AUTHORITATIVE_INFORMATION = 203
+
+pattern RESPONSE_OK :: Int
+
+pattern RESPONSE_OK = 200
+
+pattern RESPONSE_NO_CONTENT :: Int
+
+pattern RESPONSE_NO_CONTENT = 204
+
+pattern RESPONSE_NETWORK_AUTH_REQUIRED :: Int
+
+pattern RESPONSE_NETWORK_AUTH_REQUIRED = 511
+
+pattern RESPONSE_PERMANENT_REDIRECT :: Int
+
+pattern RESPONSE_PERMANENT_REDIRECT = 308
+
+pattern RESPONSE_PRECONDITION_REQUIRED :: Int
+
+pattern RESPONSE_PRECONDITION_REQUIRED = 428
+
+pattern RESPONSE_LENGTH_REQUIRED :: Int
+
+pattern RESPONSE_LENGTH_REQUIRED = 411
+
+pattern RESPONSE_UNAVAILABLE_FOR_LEGAL_REASONS :: Int
+
+pattern RESPONSE_UNAVAILABLE_FOR_LEGAL_REASONS = 451
+
+pattern RESPONSE_INTERNAL_SERVER_ERROR :: Int
+
+pattern RESPONSE_INTERNAL_SERVER_ERROR = 500
+
+pattern RESPONSE_REQUEST_TIMEOUT :: Int
+
+pattern RESPONSE_REQUEST_TIMEOUT = 408
+
+pattern METHOD_TRACE :: Int
+
+pattern METHOD_TRACE = 6
+
+pattern RESPONSE_LOOP_DETECTED :: Int
+
+pattern RESPONSE_LOOP_DETECTED = 508
+
+pattern RESPONSE_MISDIRECTED_REQUEST :: Int
+
+pattern RESPONSE_MISDIRECTED_REQUEST = 421
+
+pattern METHOD_DELETE :: Int
+
+pattern METHOD_DELETE = 4
+
+pattern RESPONSE_TOO_MANY_REQUESTS :: Int
+
+pattern RESPONSE_TOO_MANY_REQUESTS = 429
+
+pattern RESPONSE_NOT_EXTENDED :: Int
+
+pattern RESPONSE_NOT_EXTENDED = 510
+
+pattern METHOD_PUT :: Int
+
+pattern METHOD_PUT = 3
+
+pattern RESPONSE_MOVED_PERMANENTLY :: Int
+
+pattern RESPONSE_MOVED_PERMANENTLY = 301
+
+pattern RESPONSE_NOT_ACCEPTABLE :: Int
+
+pattern RESPONSE_NOT_ACCEPTABLE = 406
+
+pattern RESPONSE_SERVICE_UNAVAILABLE :: Int
+
+pattern RESPONSE_SERVICE_UNAVAILABLE = 503
+
+pattern RESPONSE_BAD_GATEWAY :: Int
+
+pattern RESPONSE_BAD_GATEWAY = 502
+
+pattern METHOD_MAX :: Int
+
+pattern METHOD_MAX = 9
+
+pattern RESPONSE_RESET_CONTENT :: Int
+
+pattern RESPONSE_RESET_CONTENT = 205
+
+pattern RESPONSE_VARIANT_ALSO_NEGOTIATES :: Int
+
+pattern RESPONSE_VARIANT_ALSO_NEGOTIATES = 506
+
+pattern RESPONSE_PROCESSING :: Int
+
+pattern RESPONSE_PROCESSING = 102
+
+pattern RESPONSE_UPGRADE_REQUIRED :: Int
+
+pattern RESPONSE_UPGRADE_REQUIRED = 426
+
+pattern RESPONSE_EXPECTATION_FAILED :: Int
+
+pattern RESPONSE_EXPECTATION_FAILED = 417
+
+pattern RESPONSE_UNPROCESSABLE_ENTITY :: Int
+
+pattern RESPONSE_UNPROCESSABLE_ENTITY = 422
+
+pattern RESPONSE_REQUEST_HEADER_FIELDS_TOO_LARGE :: Int
+
+pattern RESPONSE_REQUEST_HEADER_FIELDS_TOO_LARGE = 431
+
+pattern STATUS_REQUESTING :: Int
+
+pattern STATUS_REQUESTING = 6
+
+pattern RESPONSE_IM_A_TEAPOT :: Int
+
+pattern RESPONSE_IM_A_TEAPOT = 418
+
+pattern RESPONSE_FOUND :: Int
+
+pattern RESPONSE_FOUND = 302
+
+pattern STATUS_DISCONNECTED :: Int
+
+pattern STATUS_DISCONNECTED = 0
+
+pattern RESPONSE_HTTP_VERSION_NOT_SUPPORTED :: Int
+
+pattern RESPONSE_HTTP_VERSION_NOT_SUPPORTED = 505
+
+pattern RESPONSE_CONTINUE :: Int
+
+pattern RESPONSE_CONTINUE = 100
+
+pattern RESPONSE_ACCEPTED :: Int
+
+pattern RESPONSE_ACCEPTED = 202
+
+pattern RESPONSE_IM_USED :: Int
+
+pattern RESPONSE_IM_USED = 226
+
+pattern RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE :: Int
+
+pattern RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE = 416
+
+pattern STATUS_SSL_HANDSHAKE_ERROR :: Int
+
+pattern STATUS_SSL_HANDSHAKE_ERROR = 9
+
+pattern METHOD_HEAD :: Int
+
+pattern METHOD_HEAD = 1
+
+pattern RESPONSE_UNAUTHORIZED :: Int
+
+pattern RESPONSE_UNAUTHORIZED = 401
+
+pattern RESPONSE_NOT_FOUND :: Int
+
+pattern RESPONSE_NOT_FOUND = 404
+
+pattern RESPONSE_PAYMENT_REQUIRED :: Int
+
+pattern RESPONSE_PAYMENT_REQUIRED = 402
+
+pattern METHOD_POST :: Int
+
+pattern METHOD_POST = 2
+
+pattern RESPONSE_GATEWAY_TIMEOUT :: Int
+
+pattern RESPONSE_GATEWAY_TIMEOUT = 504
+
+pattern RESPONSE_MULTIPLE_CHOICES :: Int
+
+pattern RESPONSE_MULTIPLE_CHOICES = 300
+
+pattern STATUS_BODY :: Int
+
+pattern STATUS_BODY = 7
+
+pattern RESPONSE_METHOD_NOT_ALLOWED :: Int
+
+pattern RESPONSE_METHOD_NOT_ALLOWED = 405
+
+pattern RESPONSE_MULTI_STATUS :: Int
+
+pattern RESPONSE_MULTI_STATUS = 207
+
+pattern RESPONSE_LOCKED :: Int
+
+pattern RESPONSE_LOCKED = 423
+
+pattern METHOD_CONNECT :: Int
+
+pattern METHOD_CONNECT = 7
+
+pattern METHOD_PATCH :: Int
+
+pattern METHOD_PATCH = 8
+
+pattern METHOD_GET :: Int
+
+pattern METHOD_GET = 0
+
+pattern RESPONSE_PROXY_AUTHENTICATION_REQUIRED :: Int
+
+pattern RESPONSE_PROXY_AUTHENTICATION_REQUIRED = 407
+
+pattern RESPONSE_PARTIAL_CONTENT :: Int
+
+pattern RESPONSE_PARTIAL_CONTENT = 206
diff --git a/src/Godot/Core/GodotHTTPRequest.hs b/src/Godot/Core/GodotHTTPRequest.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotHTTPRequest.hs
@@ -0,0 +1,59 @@
+module Godot.Core.GodotHTTPRequest where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern RESULT_DOWNLOAD_FILE_CANT_OPEN :: Int
+
+pattern RESULT_DOWNLOAD_FILE_CANT_OPEN = 9
+
+pattern RESULT_SUCCESS :: Int
+
+pattern RESULT_SUCCESS = 0
+
+pattern RESULT_NO_RESPONSE :: Int
+
+pattern RESULT_NO_RESPONSE = 6
+
+pattern RESULT_REQUEST_FAILED :: Int
+
+pattern RESULT_REQUEST_FAILED = 8
+
+pattern RESULT_CONNECTION_ERROR :: Int
+
+pattern RESULT_CONNECTION_ERROR = 4
+
+pattern RESULT_CANT_CONNECT :: Int
+
+pattern RESULT_CANT_CONNECT = 2
+
+pattern RESULT_CHUNKED_BODY_SIZE_MISMATCH :: Int
+
+pattern RESULT_CHUNKED_BODY_SIZE_MISMATCH = 1
+
+pattern RESULT_BODY_SIZE_LIMIT_EXCEEDED :: Int
+
+pattern RESULT_BODY_SIZE_LIMIT_EXCEEDED = 7
+
+pattern RESULT_REDIRECT_LIMIT_REACHED :: Int
+
+pattern RESULT_REDIRECT_LIMIT_REACHED = 11
+
+pattern RESULT_SSL_HANDSHAKE_ERROR :: Int
+
+pattern RESULT_SSL_HANDSHAKE_ERROR = 5
+
+pattern RESULT_CANT_RESOLVE :: Int
+
+pattern RESULT_CANT_RESOLVE = 3
+
+pattern RESULT_DOWNLOAD_FILE_WRITE_ERROR :: Int
+
+pattern RESULT_DOWNLOAD_FILE_WRITE_ERROR = 10
+
+request_completed :: Signal GodotHTTPRequest
+request_completed = Signal "request_completed"
diff --git a/src/Godot/Core/GodotHingeJoint.hs b/src/Godot/Core/GodotHingeJoint.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotHingeJoint.hs
@@ -0,0 +1,56 @@
+module Godot.Core.GodotHingeJoint where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern PARAM_MOTOR_MAX_IMPULSE :: Int
+
+pattern PARAM_MOTOR_MAX_IMPULSE = 7
+
+pattern FLAG_USE_LIMIT :: Int
+
+pattern FLAG_USE_LIMIT = 0
+
+pattern PARAM_LIMIT_RELAXATION :: Int
+
+pattern PARAM_LIMIT_RELAXATION = 5
+
+pattern PARAM_LIMIT_UPPER :: Int
+
+pattern PARAM_LIMIT_UPPER = 1
+
+pattern PARAM_LIMIT_BIAS :: Int
+
+pattern PARAM_LIMIT_BIAS = 3
+
+pattern PARAM_MAX :: Int
+
+pattern PARAM_MAX = 8
+
+pattern FLAG_MAX :: Int
+
+pattern FLAG_MAX = 2
+
+pattern PARAM_LIMIT_SOFTNESS :: Int
+
+pattern PARAM_LIMIT_SOFTNESS = 4
+
+pattern PARAM_MOTOR_TARGET_VELOCITY :: Int
+
+pattern PARAM_MOTOR_TARGET_VELOCITY = 6
+
+pattern FLAG_ENABLE_MOTOR :: Int
+
+pattern FLAG_ENABLE_MOTOR = 1
+
+pattern PARAM_LIMIT_LOWER :: Int
+
+pattern PARAM_LIMIT_LOWER = 2
+
+pattern PARAM_BIAS :: Int
+
+pattern PARAM_BIAS = 0
diff --git a/src/Godot/Core/GodotIP.hs b/src/Godot/Core/GodotIP.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotIP.hs
@@ -0,0 +1,48 @@
+module Godot.Core.GodotIP where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern RESOLVER_INVALID_ID :: Int
+
+pattern RESOLVER_INVALID_ID = -1
+
+pattern TYPE_NONE :: Int
+
+pattern TYPE_NONE = 0
+
+pattern RESOLVER_STATUS_WAITING :: Int
+
+pattern RESOLVER_STATUS_WAITING = 1
+
+pattern TYPE_IPV4 :: Int
+
+pattern TYPE_IPV4 = 1
+
+pattern RESOLVER_STATUS_ERROR :: Int
+
+pattern RESOLVER_STATUS_ERROR = 3
+
+pattern RESOLVER_STATUS_DONE :: Int
+
+pattern RESOLVER_STATUS_DONE = 2
+
+pattern RESOLVER_STATUS_NONE :: Int
+
+pattern RESOLVER_STATUS_NONE = 0
+
+pattern TYPE_IPV6 :: Int
+
+pattern TYPE_IPV6 = 2
+
+pattern RESOLVER_MAX_QUERIES :: Int
+
+pattern RESOLVER_MAX_QUERIES = 32
+
+pattern TYPE_ANY :: Int
+
+pattern TYPE_ANY = 3
diff --git a/src/Godot/Core/GodotIP_Unix.hs b/src/Godot/Core/GodotIP_Unix.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotIP_Unix.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotIP_Unix where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotImage.hs b/src/Godot/Core/GodotImage.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotImage.hs
@@ -0,0 +1,220 @@
+module Godot.Core.GodotImage where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FORMAT_RGBAF :: Int
+
+pattern FORMAT_RGBAF = 11
+
+pattern FORMAT_PVRTC2A :: Int
+
+pattern FORMAT_PVRTC2A = 26
+
+pattern FORMAT_ETC2_RGB8 :: Int
+
+pattern FORMAT_ETC2_RGB8 = 34
+
+pattern FORMAT_RGF :: Int
+
+pattern FORMAT_RGF = 9
+
+pattern FORMAT_DXT3 :: Int
+
+pattern FORMAT_DXT3 = 18
+
+pattern COMPRESS_SOURCE_GENERIC :: Int
+
+pattern COMPRESS_SOURCE_GENERIC = 0
+
+pattern FORMAT_ETC2_R11S :: Int
+
+pattern FORMAT_ETC2_R11S = 31
+
+pattern FORMAT_PVRTC4A :: Int
+
+pattern FORMAT_PVRTC4A = 28
+
+pattern FORMAT_RGBA4444 :: Int
+
+pattern FORMAT_RGBA4444 = 6
+
+pattern FORMAT_ETC2_RG11S :: Int
+
+pattern FORMAT_ETC2_RG11S = 33
+
+pattern FORMAT_RGBF :: Int
+
+pattern FORMAT_RGBF = 10
+
+pattern FORMAT_MAX :: Int
+
+pattern FORMAT_MAX = 37
+
+pattern COMPRESS_SOURCE_NORMAL :: Int
+
+pattern COMPRESS_SOURCE_NORMAL = 2
+
+pattern COMPRESS_ETC :: Int
+
+pattern COMPRESS_ETC = 3
+
+pattern FORMAT_RGTC_R :: Int
+
+pattern FORMAT_RGTC_R = 20
+
+pattern COMPRESS_S3TC :: Int
+
+pattern COMPRESS_S3TC = 0
+
+pattern COMPRESS_PVRTC4 :: Int
+
+pattern COMPRESS_PVRTC4 = 2
+
+pattern FORMAT_ETC2_RG11 :: Int
+
+pattern FORMAT_ETC2_RG11 = 32
+
+pattern FORMAT_ETC :: Int
+
+pattern FORMAT_ETC = 29
+
+pattern FORMAT_RGBA5551 :: Int
+
+pattern FORMAT_RGBA5551 = 7
+
+pattern COMPRESS_ETC2 :: Int
+
+pattern COMPRESS_ETC2 = 4
+
+pattern FORMAT_ETC2_R11 :: Int
+
+pattern FORMAT_ETC2_R11 = 30
+
+pattern FORMAT_LA8 :: Int
+
+pattern FORMAT_LA8 = 1
+
+pattern FORMAT_DXT5 :: Int
+
+pattern FORMAT_DXT5 = 19
+
+pattern ALPHA_NONE :: Int
+
+pattern ALPHA_NONE = 0
+
+pattern ALPHA_BIT :: Int
+
+pattern ALPHA_BIT = 1
+
+pattern FORMAT_ETC2_RGB8A1 :: Int
+
+pattern FORMAT_ETC2_RGB8A1 = 36
+
+pattern FORMAT_RGTC_RG :: Int
+
+pattern FORMAT_RGTC_RG = 21
+
+pattern FORMAT_BPTC_RGBF :: Int
+
+pattern FORMAT_BPTC_RGBF = 23
+
+pattern COMPRESS_SOURCE_SRGB :: Int
+
+pattern COMPRESS_SOURCE_SRGB = 1
+
+pattern FORMAT_RGBA8 :: Int
+
+pattern FORMAT_RGBA8 = 5
+
+pattern INTERPOLATE_NEAREST :: Int
+
+pattern INTERPOLATE_NEAREST = 0
+
+pattern FORMAT_RGBAH :: Int
+
+pattern FORMAT_RGBAH = 15
+
+pattern FORMAT_RGBE9995 :: Int
+
+pattern FORMAT_RGBE9995 = 16
+
+pattern FORMAT_BPTC_RGBFU :: Int
+
+pattern FORMAT_BPTC_RGBFU = 24
+
+pattern INTERPOLATE_TRILINEAR :: Int
+
+pattern INTERPOLATE_TRILINEAR = 3
+
+pattern ALPHA_BLEND :: Int
+
+pattern ALPHA_BLEND = 2
+
+pattern FORMAT_PVRTC2 :: Int
+
+pattern FORMAT_PVRTC2 = 25
+
+pattern FORMAT_DXT1 :: Int
+
+pattern FORMAT_DXT1 = 17
+
+pattern FORMAT_ETC2_RGBA8 :: Int
+
+pattern FORMAT_ETC2_RGBA8 = 35
+
+pattern FORMAT_BPTC_RGBA :: Int
+
+pattern FORMAT_BPTC_RGBA = 22
+
+pattern COMPRESS_PVRTC2 :: Int
+
+pattern COMPRESS_PVRTC2 = 1
+
+pattern FORMAT_RF :: Int
+
+pattern FORMAT_RF = 8
+
+pattern FORMAT_L8 :: Int
+
+pattern FORMAT_L8 = 0
+
+pattern FORMAT_RGB8 :: Int
+
+pattern FORMAT_RGB8 = 4
+
+pattern FORMAT_RGBH :: Int
+
+pattern FORMAT_RGBH = 14
+
+pattern FORMAT_PVRTC4 :: Int
+
+pattern FORMAT_PVRTC4 = 27
+
+pattern FORMAT_RH :: Int
+
+pattern FORMAT_RH = 12
+
+pattern FORMAT_R8 :: Int
+
+pattern FORMAT_R8 = 2
+
+pattern INTERPOLATE_BILINEAR :: Int
+
+pattern INTERPOLATE_BILINEAR = 1
+
+pattern INTERPOLATE_CUBIC :: Int
+
+pattern INTERPOLATE_CUBIC = 2
+
+pattern FORMAT_RG8 :: Int
+
+pattern FORMAT_RG8 = 3
+
+pattern FORMAT_RGH :: Int
+
+pattern FORMAT_RGH = 13
diff --git a/src/Godot/Core/GodotImageTexture.hs b/src/Godot/Core/GodotImageTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotImageTexture.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotImageTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern STORAGE_RAW :: Int
+
+pattern STORAGE_RAW = 0
+
+pattern STORAGE_COMPRESS_LOSSLESS :: Int
+
+pattern STORAGE_COMPRESS_LOSSLESS = 2
+
+pattern STORAGE_COMPRESS_LOSSY :: Int
+
+pattern STORAGE_COMPRESS_LOSSY = 1
diff --git a/src/Godot/Core/GodotImmediateGeometry.hs b/src/Godot/Core/GodotImmediateGeometry.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotImmediateGeometry.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotImmediateGeometry where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInput.hs b/src/Godot/Core/GodotInput.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInput.hs
@@ -0,0 +1,95 @@
+module Godot.Core.GodotInput where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CURSOR_MOVE :: Int
+
+pattern CURSOR_MOVE = 13
+
+pattern CURSOR_ARROW :: Int
+
+pattern CURSOR_ARROW = 0
+
+pattern CURSOR_IBEAM :: Int
+
+pattern CURSOR_IBEAM = 1
+
+pattern CURSOR_HSPLIT :: Int
+
+pattern CURSOR_HSPLIT = 15
+
+pattern CURSOR_DRAG :: Int
+
+pattern CURSOR_DRAG = 6
+
+pattern CURSOR_BUSY :: Int
+
+pattern CURSOR_BUSY = 5
+
+pattern MOUSE_MODE_CONFINED :: Int
+
+pattern MOUSE_MODE_CONFINED = 3
+
+pattern CURSOR_CROSS :: Int
+
+pattern CURSOR_CROSS = 3
+
+pattern CURSOR_WAIT :: Int
+
+pattern CURSOR_WAIT = 4
+
+pattern CURSOR_BDIAGSIZE :: Int
+
+pattern CURSOR_BDIAGSIZE = 11
+
+pattern CURSOR_HELP :: Int
+
+pattern CURSOR_HELP = 16
+
+pattern MOUSE_MODE_VISIBLE :: Int
+
+pattern MOUSE_MODE_VISIBLE = 0
+
+pattern CURSOR_CAN_DROP :: Int
+
+pattern CURSOR_CAN_DROP = 7
+
+pattern MOUSE_MODE_CAPTURED :: Int
+
+pattern MOUSE_MODE_CAPTURED = 2
+
+pattern CURSOR_POINTING_HAND :: Int
+
+pattern CURSOR_POINTING_HAND = 2
+
+pattern CURSOR_FDIAGSIZE :: Int
+
+pattern CURSOR_FDIAGSIZE = 12
+
+pattern CURSOR_HSIZE :: Int
+
+pattern CURSOR_HSIZE = 10
+
+pattern MOUSE_MODE_HIDDEN :: Int
+
+pattern MOUSE_MODE_HIDDEN = 1
+
+pattern CURSOR_FORBIDDEN :: Int
+
+pattern CURSOR_FORBIDDEN = 8
+
+pattern CURSOR_VSIZE :: Int
+
+pattern CURSOR_VSIZE = 9
+
+pattern CURSOR_VSPLIT :: Int
+
+pattern CURSOR_VSPLIT = 14
+
+joy_connection_changed :: Signal GodotInput
+joy_connection_changed = Signal "joy_connection_changed"
diff --git a/src/Godot/Core/GodotInputDefault.hs b/src/Godot/Core/GodotInputDefault.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputDefault.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputDefault where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEvent.hs b/src/Godot/Core/GodotInputEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEvent.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEvent where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventAction.hs b/src/Godot/Core/GodotInputEventAction.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventAction.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventAction where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventGesture.hs b/src/Godot/Core/GodotInputEventGesture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventGesture.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventGesture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventJoypadButton.hs b/src/Godot/Core/GodotInputEventJoypadButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventJoypadButton.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventJoypadButton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventJoypadMotion.hs b/src/Godot/Core/GodotInputEventJoypadMotion.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventJoypadMotion.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventJoypadMotion where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventKey.hs b/src/Godot/Core/GodotInputEventKey.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventKey.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventKey where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventMagnifyGesture.hs b/src/Godot/Core/GodotInputEventMagnifyGesture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventMagnifyGesture.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventMagnifyGesture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventMouse.hs b/src/Godot/Core/GodotInputEventMouse.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventMouse.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventMouse where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventMouseButton.hs b/src/Godot/Core/GodotInputEventMouseButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventMouseButton.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventMouseButton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventMouseMotion.hs b/src/Godot/Core/GodotInputEventMouseMotion.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventMouseMotion.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventMouseMotion where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventPanGesture.hs b/src/Godot/Core/GodotInputEventPanGesture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventPanGesture.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventPanGesture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventScreenDrag.hs b/src/Godot/Core/GodotInputEventScreenDrag.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventScreenDrag.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventScreenDrag where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventScreenTouch.hs b/src/Godot/Core/GodotInputEventScreenTouch.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventScreenTouch.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventScreenTouch where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputEventWithModifiers.hs b/src/Godot/Core/GodotInputEventWithModifiers.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputEventWithModifiers.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputEventWithModifiers where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInputMap.hs b/src/Godot/Core/GodotInputMap.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInputMap.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInputMap where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInstancePlaceholder.hs b/src/Godot/Core/GodotInstancePlaceholder.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInstancePlaceholder.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInstancePlaceholder where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotInterpolatedCamera.hs b/src/Godot/Core/GodotInterpolatedCamera.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotInterpolatedCamera.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotInterpolatedCamera where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotItemList.hs b/src/Godot/Core/GodotItemList.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotItemList.hs
@@ -0,0 +1,42 @@
+module Godot.Core.GodotItemList where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ICON_MODE_LEFT :: Int
+
+pattern ICON_MODE_LEFT = 1
+
+pattern SELECT_MULTI :: Int
+
+pattern SELECT_MULTI = 1
+
+pattern SELECT_SINGLE :: Int
+
+pattern SELECT_SINGLE = 0
+
+pattern ICON_MODE_TOP :: Int
+
+pattern ICON_MODE_TOP = 0
+
+item_activated :: Signal GodotItemList
+item_activated = Signal "item_activated"
+
+multi_selected :: Signal GodotItemList
+multi_selected = Signal "multi_selected"
+
+nothing_selected :: Signal GodotItemList
+nothing_selected = Signal "nothing_selected"
+
+rmb_clicked :: Signal GodotItemList
+rmb_clicked = Signal "rmb_clicked"
+
+item_rmb_selected :: Signal GodotItemList
+item_rmb_selected = Signal "item_rmb_selected"
+
+item_selected :: Signal GodotItemList
+item_selected = Signal "item_selected"
diff --git a/src/Godot/Core/GodotJSONParseResult.hs b/src/Godot/Core/GodotJSONParseResult.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotJSONParseResult.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotJSONParseResult where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotJavaScript.hs b/src/Godot/Core/GodotJavaScript.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotJavaScript.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotJavaScript where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotJoint.hs b/src/Godot/Core/GodotJoint.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotJoint.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotJoint where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotJoint2D.hs b/src/Godot/Core/GodotJoint2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotJoint2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotJoint2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotKinematicBody.hs b/src/Godot/Core/GodotKinematicBody.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotKinematicBody.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotKinematicBody where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotKinematicBody2D.hs b/src/Godot/Core/GodotKinematicBody2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotKinematicBody2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotKinematicBody2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotKinematicCollision.hs b/src/Godot/Core/GodotKinematicCollision.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotKinematicCollision.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotKinematicCollision where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotKinematicCollision2D.hs b/src/Godot/Core/GodotKinematicCollision2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotKinematicCollision2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotKinematicCollision2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotLabel.hs b/src/Godot/Core/GodotLabel.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotLabel.hs
@@ -0,0 +1,40 @@
+module Godot.Core.GodotLabel where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern VALIGN_TOP :: Int
+
+pattern VALIGN_TOP = 0
+
+pattern ALIGN_RIGHT :: Int
+
+pattern ALIGN_RIGHT = 2
+
+pattern ALIGN_FILL :: Int
+
+pattern ALIGN_FILL = 3
+
+pattern VALIGN_FILL :: Int
+
+pattern VALIGN_FILL = 3
+
+pattern VALIGN_CENTER :: Int
+
+pattern VALIGN_CENTER = 1
+
+pattern VALIGN_BOTTOM :: Int
+
+pattern VALIGN_BOTTOM = 2
+
+pattern ALIGN_LEFT :: Int
+
+pattern ALIGN_LEFT = 0
+
+pattern ALIGN_CENTER :: Int
+
+pattern ALIGN_CENTER = 1
diff --git a/src/Godot/Core/GodotLargeTexture.hs b/src/Godot/Core/GodotLargeTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotLargeTexture.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotLargeTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotLight.hs b/src/Godot/Core/GodotLight.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotLight.hs
@@ -0,0 +1,84 @@
+module Godot.Core.GodotLight where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern PARAM_SHADOW_NORMAL_BIAS :: Int
+
+pattern PARAM_SHADOW_NORMAL_BIAS = 12
+
+pattern PARAM_SHADOW_SPLIT_2_OFFSET :: Int
+
+pattern PARAM_SHADOW_SPLIT_2_OFFSET = 10
+
+pattern PARAM_SPECULAR :: Int
+
+pattern PARAM_SPECULAR = 2
+
+pattern PARAM_SHADOW_SPLIT_1_OFFSET :: Int
+
+pattern PARAM_SHADOW_SPLIT_1_OFFSET = 9
+
+pattern PARAM_INDIRECT_ENERGY :: Int
+
+pattern PARAM_INDIRECT_ENERGY = 1
+
+pattern PARAM_RANGE :: Int
+
+pattern PARAM_RANGE = 3
+
+pattern PARAM_SPOT_ATTENUATION :: Int
+
+pattern PARAM_SPOT_ATTENUATION = 6
+
+pattern PARAM_SHADOW_MAX_DISTANCE :: Int
+
+pattern PARAM_SHADOW_MAX_DISTANCE = 8
+
+pattern PARAM_MAX :: Int
+
+pattern PARAM_MAX = 15
+
+pattern PARAM_SHADOW_BIAS_SPLIT_SCALE :: Int
+
+pattern PARAM_SHADOW_BIAS_SPLIT_SCALE = 14
+
+pattern BAKE_DISABLED :: Int
+
+pattern BAKE_DISABLED = 0
+
+pattern PARAM_ATTENUATION :: Int
+
+pattern PARAM_ATTENUATION = 4
+
+pattern PARAM_ENERGY :: Int
+
+pattern PARAM_ENERGY = 0
+
+pattern PARAM_SHADOW_SPLIT_3_OFFSET :: Int
+
+pattern PARAM_SHADOW_SPLIT_3_OFFSET = 11
+
+pattern BAKE_INDIRECT :: Int
+
+pattern BAKE_INDIRECT = 1
+
+pattern PARAM_SHADOW_BIAS :: Int
+
+pattern PARAM_SHADOW_BIAS = 13
+
+pattern BAKE_ALL :: Int
+
+pattern BAKE_ALL = 2
+
+pattern PARAM_CONTACT_SHADOW_SIZE :: Int
+
+pattern PARAM_CONTACT_SHADOW_SIZE = 7
+
+pattern PARAM_SPOT_ANGLE :: Int
+
+pattern PARAM_SPOT_ANGLE = 5
diff --git a/src/Godot/Core/GodotLight2D.hs b/src/Godot/Core/GodotLight2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotLight2D.hs
@@ -0,0 +1,48 @@
+module Godot.Core.GodotLight2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SHADOW_FILTER_PCF7 :: Int
+
+pattern SHADOW_FILTER_PCF7 = 3
+
+pattern MODE_ADD :: Int
+
+pattern MODE_ADD = 0
+
+pattern MODE_SUB :: Int
+
+pattern MODE_SUB = 1
+
+pattern SHADOW_FILTER_PCF5 :: Int
+
+pattern SHADOW_FILTER_PCF5 = 2
+
+pattern SHADOW_FILTER_NONE :: Int
+
+pattern SHADOW_FILTER_NONE = 0
+
+pattern SHADOW_FILTER_PCF9 :: Int
+
+pattern SHADOW_FILTER_PCF9 = 4
+
+pattern MODE_MASK :: Int
+
+pattern MODE_MASK = 3
+
+pattern MODE_MIX :: Int
+
+pattern MODE_MIX = 2
+
+pattern SHADOW_FILTER_PCF3 :: Int
+
+pattern SHADOW_FILTER_PCF3 = 1
+
+pattern SHADOW_FILTER_PCF13 :: Int
+
+pattern SHADOW_FILTER_PCF13 = 5
diff --git a/src/Godot/Core/GodotLightOccluder2D.hs b/src/Godot/Core/GodotLightOccluder2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotLightOccluder2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotLightOccluder2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotLine2D.hs b/src/Godot/Core/GodotLine2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotLine2D.hs
@@ -0,0 +1,44 @@
+module Godot.Core.GodotLine2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern LINE_JOINT_ROUND :: Int
+
+pattern LINE_JOINT_ROUND = 2
+
+pattern LINE_TEXTURE_NONE :: Int
+
+pattern LINE_TEXTURE_NONE = 0
+
+pattern LINE_CAP_ROUND :: Int
+
+pattern LINE_CAP_ROUND = 2
+
+pattern LINE_CAP_NONE :: Int
+
+pattern LINE_CAP_NONE = 0
+
+pattern LINE_TEXTURE_TILE :: Int
+
+pattern LINE_TEXTURE_TILE = 1
+
+pattern LINE_JOINT_BEVEL :: Int
+
+pattern LINE_JOINT_BEVEL = 1
+
+pattern LINE_JOINT_SHARP :: Int
+
+pattern LINE_JOINT_SHARP = 0
+
+pattern LINE_TEXTURE_STRETCH :: Int
+
+pattern LINE_TEXTURE_STRETCH = 2
+
+pattern LINE_CAP_BOX :: Int
+
+pattern LINE_CAP_BOX = 1
diff --git a/src/Godot/Core/GodotLineEdit.hs b/src/Godot/Core/GodotLineEdit.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotLineEdit.hs
@@ -0,0 +1,62 @@
+module Godot.Core.GodotLineEdit where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MENU_PASTE :: Int
+
+pattern MENU_PASTE = 2
+
+pattern ALIGN_RIGHT :: Int
+
+pattern ALIGN_RIGHT = 2
+
+pattern ALIGN_FILL :: Int
+
+pattern ALIGN_FILL = 3
+
+pattern MENU_CLEAR :: Int
+
+pattern MENU_CLEAR = 3
+
+pattern MENU_MAX :: Int
+
+pattern MENU_MAX = 7
+
+pattern MENU_REDO :: Int
+
+pattern MENU_REDO = 6
+
+pattern MENU_COPY :: Int
+
+pattern MENU_COPY = 1
+
+pattern MENU_UNDO :: Int
+
+pattern MENU_UNDO = 5
+
+pattern MENU_SELECT_ALL :: Int
+
+pattern MENU_SELECT_ALL = 4
+
+pattern MENU_CUT :: Int
+
+pattern MENU_CUT = 0
+
+pattern ALIGN_LEFT :: Int
+
+pattern ALIGN_LEFT = 0
+
+pattern ALIGN_CENTER :: Int
+
+pattern ALIGN_CENTER = 1
+
+text_entered :: Signal GodotLineEdit
+text_entered = Signal "text_entered"
+
+text_changed :: Signal GodotLineEdit
+text_changed = Signal "text_changed"
diff --git a/src/Godot/Core/GodotLineShape2D.hs b/src/Godot/Core/GodotLineShape2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotLineShape2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotLineShape2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotLinkButton.hs b/src/Godot/Core/GodotLinkButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotLinkButton.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotLinkButton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern UNDERLINE_MODE_ALWAYS :: Int
+
+pattern UNDERLINE_MODE_ALWAYS = 0
+
+pattern UNDERLINE_MODE_NEVER :: Int
+
+pattern UNDERLINE_MODE_NEVER = 2
+
+pattern UNDERLINE_MODE_ON_HOVER :: Int
+
+pattern UNDERLINE_MODE_ON_HOVER = 1
diff --git a/src/Godot/Core/GodotListener.hs b/src/Godot/Core/GodotListener.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotListener.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotListener where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotMainLoop.hs b/src/Godot/Core/GodotMainLoop.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMainLoop.hs
@@ -0,0 +1,52 @@
+module Godot.Core.GodotMainLoop where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern NOTIFICATION_WM_ABOUT :: Int
+
+pattern NOTIFICATION_WM_ABOUT = 91
+
+pattern NOTIFICATION_WM_GO_BACK_REQUEST :: Int
+
+pattern NOTIFICATION_WM_GO_BACK_REQUEST = 7
+
+pattern NOTIFICATION_WM_QUIT_REQUEST :: Int
+
+pattern NOTIFICATION_WM_QUIT_REQUEST = 6
+
+pattern NOTIFICATION_WM_FOCUS_IN :: Int
+
+pattern NOTIFICATION_WM_FOCUS_IN = 4
+
+pattern NOTIFICATION_WM_MOUSE_EXIT :: Int
+
+pattern NOTIFICATION_WM_MOUSE_EXIT = 3
+
+pattern NOTIFICATION_TRANSLATION_CHANGED :: Int
+
+pattern NOTIFICATION_TRANSLATION_CHANGED = 90
+
+pattern NOTIFICATION_WM_FOCUS_OUT :: Int
+
+pattern NOTIFICATION_WM_FOCUS_OUT = 5
+
+pattern NOTIFICATION_OS_MEMORY_WARNING :: Int
+
+pattern NOTIFICATION_OS_MEMORY_WARNING = 9
+
+pattern NOTIFICATION_WM_UNFOCUS_REQUEST :: Int
+
+pattern NOTIFICATION_WM_UNFOCUS_REQUEST = 8
+
+pattern NOTIFICATION_WM_MOUSE_ENTER :: Int
+
+pattern NOTIFICATION_WM_MOUSE_ENTER = 2
+
+pattern NOTIFICATION_CRASH :: Int
+
+pattern NOTIFICATION_CRASH = 92
diff --git a/src/Godot/Core/GodotMarginContainer.hs b/src/Godot/Core/GodotMarginContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMarginContainer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotMarginContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotMaterial.hs b/src/Godot/Core/GodotMaterial.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMaterial.hs
@@ -0,0 +1,16 @@
+module Godot.Core.GodotMaterial where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern RENDER_PRIORITY_MAX :: Int
+
+pattern RENDER_PRIORITY_MAX = 127
+
+pattern RENDER_PRIORITY_MIN :: Int
+
+pattern RENDER_PRIORITY_MIN = -128
diff --git a/src/Godot/Core/GodotMenuButton.hs b/src/Godot/Core/GodotMenuButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMenuButton.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotMenuButton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+about_to_show :: Signal GodotMenuButton
+about_to_show = Signal "about_to_show"
diff --git a/src/Godot/Core/GodotMesh.hs b/src/Godot/Core/GodotMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMesh.hs
@@ -0,0 +1,172 @@
+module Godot.Core.GodotMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ARRAY_COMPRESS_WEIGHTS :: Int
+
+pattern ARRAY_COMPRESS_WEIGHTS = 65536
+
+pattern ARRAY_FLAG_USE_16_BIT_BONES :: Int
+
+pattern ARRAY_FLAG_USE_16_BIT_BONES = 524288
+
+pattern ARRAY_FORMAT_INDEX :: Int
+
+pattern ARRAY_FORMAT_INDEX = 256
+
+pattern ARRAY_COMPRESS_TANGENT :: Int
+
+pattern ARRAY_COMPRESS_TANGENT = 2048
+
+pattern ARRAY_COMPRESS_NORMAL :: Int
+
+pattern ARRAY_COMPRESS_NORMAL = 1024
+
+pattern ARRAY_FORMAT_COLOR :: Int
+
+pattern ARRAY_FORMAT_COLOR = 8
+
+pattern ARRAY_FORMAT_TEX_UV :: Int
+
+pattern ARRAY_FORMAT_TEX_UV = 16
+
+pattern ARRAY_COMPRESS_VERTEX :: Int
+
+pattern ARRAY_COMPRESS_VERTEX = 512
+
+pattern ARRAY_FORMAT_VERTEX :: Int
+
+pattern ARRAY_FORMAT_VERTEX = 1
+
+pattern ARRAY_COMPRESS_TEX_UV :: Int
+
+pattern ARRAY_COMPRESS_TEX_UV = 8192
+
+pattern ARRAY_COMPRESS_BASE :: Int
+
+pattern ARRAY_COMPRESS_BASE = 9
+
+pattern ARRAY_COMPRESS_BONES :: Int
+
+pattern ARRAY_COMPRESS_BONES = 32768
+
+pattern ARRAY_MAX :: Int
+
+pattern ARRAY_MAX = 9
+
+pattern ARRAY_NORMAL :: Int
+
+pattern ARRAY_NORMAL = 1
+
+pattern ARRAY_FORMAT_TEX_UV2 :: Int
+
+pattern ARRAY_FORMAT_TEX_UV2 = 32
+
+pattern ARRAY_INDEX :: Int
+
+pattern ARRAY_INDEX = 8
+
+pattern ARRAY_COLOR :: Int
+
+pattern ARRAY_COLOR = 3
+
+pattern PRIMITIVE_TRIANGLE_STRIP :: Int
+
+pattern PRIMITIVE_TRIANGLE_STRIP = 5
+
+pattern PRIMITIVE_TRIANGLES :: Int
+
+pattern PRIMITIVE_TRIANGLES = 4
+
+pattern ARRAY_TEX_UV :: Int
+
+pattern ARRAY_TEX_UV = 4
+
+pattern BLEND_SHAPE_MODE_NORMALIZED :: Int
+
+pattern BLEND_SHAPE_MODE_NORMALIZED = 0
+
+pattern PRIMITIVE_LINE_LOOP :: Int
+
+pattern PRIMITIVE_LINE_LOOP = 3
+
+pattern PRIMITIVE_TRIANGLE_FAN :: Int
+
+pattern PRIMITIVE_TRIANGLE_FAN = 6
+
+pattern ARRAY_FORMAT_NORMAL :: Int
+
+pattern ARRAY_FORMAT_NORMAL = 2
+
+pattern ARRAY_TEX_UV2 :: Int
+
+pattern ARRAY_TEX_UV2 = 5
+
+pattern ARRAY_COMPRESS_DEFAULT :: Int
+
+pattern ARRAY_COMPRESS_DEFAULT = 97280
+
+pattern ARRAY_FORMAT_BONES :: Int
+
+pattern ARRAY_FORMAT_BONES = 64
+
+pattern ARRAY_COMPRESS_COLOR :: Int
+
+pattern ARRAY_COMPRESS_COLOR = 4096
+
+pattern ARRAY_WEIGHTS :: Int
+
+pattern ARRAY_WEIGHTS = 7
+
+pattern ARRAY_TANGENT :: Int
+
+pattern ARRAY_TANGENT = 2
+
+pattern ARRAY_COMPRESS_TEX_UV2 :: Int
+
+pattern ARRAY_COMPRESS_TEX_UV2 = 16384
+
+pattern PRIMITIVE_LINE_STRIP :: Int
+
+pattern PRIMITIVE_LINE_STRIP = 2
+
+pattern PRIMITIVE_LINES :: Int
+
+pattern PRIMITIVE_LINES = 1
+
+pattern ARRAY_BONES :: Int
+
+pattern ARRAY_BONES = 6
+
+pattern BLEND_SHAPE_MODE_RELATIVE :: Int
+
+pattern BLEND_SHAPE_MODE_RELATIVE = 1
+
+pattern ARRAY_VERTEX :: Int
+
+pattern ARRAY_VERTEX = 0
+
+pattern ARRAY_FLAG_USE_2D_VERTICES :: Int
+
+pattern ARRAY_FLAG_USE_2D_VERTICES = 262144
+
+pattern ARRAY_COMPRESS_INDEX :: Int
+
+pattern ARRAY_COMPRESS_INDEX = 131072
+
+pattern ARRAY_FORMAT_WEIGHTS :: Int
+
+pattern ARRAY_FORMAT_WEIGHTS = 128
+
+pattern ARRAY_FORMAT_TANGENT :: Int
+
+pattern ARRAY_FORMAT_TANGENT = 4
+
+pattern PRIMITIVE_POINTS :: Int
+
+pattern PRIMITIVE_POINTS = 0
diff --git a/src/Godot/Core/GodotMeshDataTool.hs b/src/Godot/Core/GodotMeshDataTool.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMeshDataTool.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotMeshDataTool where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotMeshInstance.hs b/src/Godot/Core/GodotMeshInstance.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMeshInstance.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotMeshInstance where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotMeshInstance2D.hs b/src/Godot/Core/GodotMeshInstance2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMeshInstance2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotMeshInstance2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotMeshLibrary.hs b/src/Godot/Core/GodotMeshLibrary.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMeshLibrary.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotMeshLibrary where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotMobileVRInterface.hs b/src/Godot/Core/GodotMobileVRInterface.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMobileVRInterface.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotMobileVRInterface where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotMultiMesh.hs b/src/Godot/Core/GodotMultiMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMultiMesh.hs
@@ -0,0 +1,40 @@
+module Godot.Core.GodotMultiMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CUSTOM_DATA_8BIT :: Int
+
+pattern CUSTOM_DATA_8BIT = 1
+
+pattern TRANSFORM_3D :: Int
+
+pattern TRANSFORM_3D = 1
+
+pattern COLOR_NONE :: Int
+
+pattern COLOR_NONE = 0
+
+pattern COLOR_FLOAT :: Int
+
+pattern COLOR_FLOAT = 2
+
+pattern TRANSFORM_2D :: Int
+
+pattern TRANSFORM_2D = 0
+
+pattern COLOR_8BIT :: Int
+
+pattern COLOR_8BIT = 1
+
+pattern CUSTOM_DATA_FLOAT :: Int
+
+pattern CUSTOM_DATA_FLOAT = 2
+
+pattern CUSTOM_DATA_NONE :: Int
+
+pattern CUSTOM_DATA_NONE = 0
diff --git a/src/Godot/Core/GodotMultiMeshInstance.hs b/src/Godot/Core/GodotMultiMeshInstance.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMultiMeshInstance.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotMultiMeshInstance where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotMultiplayerAPI.hs b/src/Godot/Core/GodotMultiplayerAPI.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMultiplayerAPI.hs
@@ -0,0 +1,62 @@
+module Godot.Core.GodotMultiplayerAPI where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern RPC_MODE_SLAVE :: Int
+
+pattern RPC_MODE_SLAVE = 3
+
+pattern RPC_MODE_DISABLED :: Int
+
+pattern RPC_MODE_DISABLED = 0
+
+pattern RPC_MODE_MASTER :: Int
+
+pattern RPC_MODE_MASTER = 2
+
+pattern RPC_MODE_MASTERSYNC :: Int
+
+pattern RPC_MODE_MASTERSYNC = 5
+
+pattern RPC_MODE_SYNC :: Int
+
+pattern RPC_MODE_SYNC = 4
+
+pattern RPC_MODE_REMOTE :: Int
+
+pattern RPC_MODE_REMOTE = 1
+
+pattern RPC_MODE_PUPPET :: Int
+
+pattern RPC_MODE_PUPPET = 3
+
+pattern RPC_MODE_PUPPETSYNC :: Int
+
+pattern RPC_MODE_PUPPETSYNC = 6
+
+pattern RPC_MODE_REMOTESYNC :: Int
+
+pattern RPC_MODE_REMOTESYNC = 4
+
+connected_to_server :: Signal GodotMultiplayerAPI
+connected_to_server = Signal "connected_to_server"
+
+connection_failed :: Signal GodotMultiplayerAPI
+connection_failed = Signal "connection_failed"
+
+network_peer_packet :: Signal GodotMultiplayerAPI
+network_peer_packet = Signal "network_peer_packet"
+
+network_peer_disconnected :: Signal GodotMultiplayerAPI
+network_peer_disconnected = Signal "network_peer_disconnected"
+
+network_peer_connected :: Signal GodotMultiplayerAPI
+network_peer_connected = Signal "network_peer_connected"
+
+server_disconnected :: Signal GodotMultiplayerAPI
+server_disconnected = Signal "server_disconnected"
diff --git a/src/Godot/Core/GodotMultiplayerPeerGDNative.hs b/src/Godot/Core/GodotMultiplayerPeerGDNative.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotMultiplayerPeerGDNative.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotMultiplayerPeerGDNative where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotNativeScript.hs b/src/Godot/Core/GodotNativeScript.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNativeScript.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotNativeScript where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotNavigation.hs b/src/Godot/Core/GodotNavigation.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNavigation.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotNavigation where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotNavigation2D.hs b/src/Godot/Core/GodotNavigation2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNavigation2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotNavigation2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotNavigationMesh.hs b/src/Godot/Core/GodotNavigationMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNavigationMesh.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotNavigationMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SAMPLE_PARTITION_LAYERS :: Int
+
+pattern SAMPLE_PARTITION_LAYERS = 2
+
+pattern SAMPLE_PARTITION_WATERSHED :: Int
+
+pattern SAMPLE_PARTITION_WATERSHED = 0
+
+pattern SAMPLE_PARTITION_MONOTONE :: Int
+
+pattern SAMPLE_PARTITION_MONOTONE = 1
diff --git a/src/Godot/Core/GodotNavigationMeshInstance.hs b/src/Godot/Core/GodotNavigationMeshInstance.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNavigationMeshInstance.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotNavigationMeshInstance where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotNavigationPolygon.hs b/src/Godot/Core/GodotNavigationPolygon.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNavigationPolygon.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotNavigationPolygon where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotNavigationPolygonInstance.hs b/src/Godot/Core/GodotNavigationPolygonInstance.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNavigationPolygonInstance.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotNavigationPolygonInstance where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotNetworkedMultiplayerENet.hs b/src/Godot/Core/GodotNetworkedMultiplayerENet.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNetworkedMultiplayerENet.hs
@@ -0,0 +1,28 @@
+module Godot.Core.GodotNetworkedMultiplayerENet where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern COMPRESS_NONE :: Int
+
+pattern COMPRESS_NONE = 0
+
+pattern COMPRESS_RANGE_CODER :: Int
+
+pattern COMPRESS_RANGE_CODER = 1
+
+pattern COMPRESS_ZLIB :: Int
+
+pattern COMPRESS_ZLIB = 3
+
+pattern COMPRESS_FASTLZ :: Int
+
+pattern COMPRESS_FASTLZ = 2
+
+pattern COMPRESS_ZSTD :: Int
+
+pattern COMPRESS_ZSTD = 4
diff --git a/src/Godot/Core/GodotNetworkedMultiplayerPeer.hs b/src/Godot/Core/GodotNetworkedMultiplayerPeer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNetworkedMultiplayerPeer.hs
@@ -0,0 +1,55 @@
+module Godot.Core.GodotNetworkedMultiplayerPeer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CONNECTION_DISCONNECTED :: Int
+
+pattern CONNECTION_DISCONNECTED = 0
+
+pattern TRANSFER_MODE_UNRELIABLE :: Int
+
+pattern TRANSFER_MODE_UNRELIABLE = 0
+
+pattern CONNECTION_CONNECTED :: Int
+
+pattern CONNECTION_CONNECTED = 2
+
+pattern TARGET_PEER_SERVER :: Int
+
+pattern TARGET_PEER_SERVER = 1
+
+pattern TARGET_PEER_BROADCAST :: Int
+
+pattern TARGET_PEER_BROADCAST = 0
+
+pattern CONNECTION_CONNECTING :: Int
+
+pattern CONNECTION_CONNECTING = 1
+
+pattern TRANSFER_MODE_RELIABLE :: Int
+
+pattern TRANSFER_MODE_RELIABLE = 2
+
+pattern TRANSFER_MODE_UNRELIABLE_ORDERED :: Int
+
+pattern TRANSFER_MODE_UNRELIABLE_ORDERED = 1
+
+connection_failed :: Signal GodotNetworkedMultiplayerPeer
+connection_failed = Signal "connection_failed"
+
+connection_succeeded :: Signal GodotNetworkedMultiplayerPeer
+connection_succeeded = Signal "connection_succeeded"
+
+peer_disconnected :: Signal GodotNetworkedMultiplayerPeer
+peer_disconnected = Signal "peer_disconnected"
+
+peer_connected :: Signal GodotNetworkedMultiplayerPeer
+peer_connected = Signal "peer_connected"
+
+server_disconnected :: Signal GodotNetworkedMultiplayerPeer
+server_disconnected = Signal "server_disconnected"
diff --git a/src/Godot/Core/GodotNinePatchRect.hs b/src/Godot/Core/GodotNinePatchRect.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNinePatchRect.hs
@@ -0,0 +1,23 @@
+module Godot.Core.GodotNinePatchRect where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern AXIS_STRETCH_MODE_TILE_FIT :: Int
+
+pattern AXIS_STRETCH_MODE_TILE_FIT = 2
+
+pattern AXIS_STRETCH_MODE_TILE :: Int
+
+pattern AXIS_STRETCH_MODE_TILE = 1
+
+pattern AXIS_STRETCH_MODE_STRETCH :: Int
+
+pattern AXIS_STRETCH_MODE_STRETCH = 0
+
+texture_changed :: Signal GodotNinePatchRect
+texture_changed = Signal "texture_changed"
diff --git a/src/Godot/Core/GodotNode.hs b/src/Godot/Core/GodotNode.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNode.hs
@@ -0,0 +1,119 @@
+module Godot.Core.GodotNode where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern DUPLICATE_GROUPS :: Int
+
+pattern DUPLICATE_GROUPS = 2
+
+pattern DUPLICATE_SCRIPTS :: Int
+
+pattern DUPLICATE_SCRIPTS = 4
+
+pattern NOTIFICATION_PAUSED :: Int
+
+pattern NOTIFICATION_PAUSED = 14
+
+pattern NOTIFICATION_MOVED_IN_PARENT :: Int
+
+pattern NOTIFICATION_MOVED_IN_PARENT = 12
+
+pattern NOTIFICATION_UNPARENTED :: Int
+
+pattern NOTIFICATION_UNPARENTED = 19
+
+pattern PAUSE_MODE_PROCESS :: Int
+
+pattern PAUSE_MODE_PROCESS = 2
+
+pattern NOTIFICATION_DRAG_END :: Int
+
+pattern NOTIFICATION_DRAG_END = 22
+
+pattern NOTIFICATION_PATH_CHANGED :: Int
+
+pattern NOTIFICATION_PATH_CHANGED = 23
+
+pattern NOTIFICATION_PHYSICS_PROCESS :: Int
+
+pattern NOTIFICATION_PHYSICS_PROCESS = 16
+
+pattern NOTIFICATION_INTERNAL_PHYSICS_PROCESS :: Int
+
+pattern NOTIFICATION_INTERNAL_PHYSICS_PROCESS = 26
+
+pattern DUPLICATE_USE_INSTANCING :: Int
+
+pattern DUPLICATE_USE_INSTANCING = 8
+
+pattern NOTIFICATION_ENTER_TREE :: Int
+
+pattern NOTIFICATION_ENTER_TREE = 10
+
+pattern NOTIFICATION_EXIT_TREE :: Int
+
+pattern NOTIFICATION_EXIT_TREE = 11
+
+pattern NOTIFICATION_PROCESS :: Int
+
+pattern NOTIFICATION_PROCESS = 17
+
+pattern NOTIFICATION_INTERNAL_PROCESS :: Int
+
+pattern NOTIFICATION_INTERNAL_PROCESS = 25
+
+pattern PAUSE_MODE_STOP :: Int
+
+pattern PAUSE_MODE_STOP = 1
+
+pattern PAUSE_MODE_INHERIT :: Int
+
+pattern PAUSE_MODE_INHERIT = 0
+
+pattern NOTIFICATION_TRANSLATION_CHANGED :: Int
+
+pattern NOTIFICATION_TRANSLATION_CHANGED = 24
+
+pattern NOTIFICATION_INSTANCED :: Int
+
+pattern NOTIFICATION_INSTANCED = 20
+
+pattern NOTIFICATION_UNPAUSED :: Int
+
+pattern NOTIFICATION_UNPAUSED = 15
+
+pattern NOTIFICATION_PARENTED :: Int
+
+pattern NOTIFICATION_PARENTED = 18
+
+pattern NOTIFICATION_DRAG_BEGIN :: Int
+
+pattern NOTIFICATION_DRAG_BEGIN = 21
+
+pattern DUPLICATE_SIGNALS :: Int
+
+pattern DUPLICATE_SIGNALS = 1
+
+pattern NOTIFICATION_READY :: Int
+
+pattern NOTIFICATION_READY = 13
+
+renamed :: Signal GodotNode
+renamed = Signal "renamed"
+
+ready :: Signal GodotNode
+ready = Signal "ready"
+
+tree_entered :: Signal GodotNode
+tree_entered = Signal "tree_entered"
+
+tree_exiting :: Signal GodotNode
+tree_exiting = Signal "tree_exiting"
+
+tree_exited :: Signal GodotNode
+tree_exited = Signal "tree_exited"
diff --git a/src/Godot/Core/GodotNode2D.hs b/src/Godot/Core/GodotNode2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNode2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotNode2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotNoiseTexture.hs b/src/Godot/Core/GodotNoiseTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotNoiseTexture.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotNoiseTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotObject.hs b/src/Godot/Core/GodotObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotObject.hs
@@ -0,0 +1,35 @@
+module Godot.Core.GodotObject where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CONNECT_REFERENCE_COUNTED :: Int
+
+pattern CONNECT_REFERENCE_COUNTED = 8
+
+pattern CONNECT_DEFERRED :: Int
+
+pattern CONNECT_DEFERRED = 1
+
+pattern NOTIFICATION_POSTINITIALIZE :: Int
+
+pattern NOTIFICATION_POSTINITIALIZE = 0
+
+pattern CONNECT_ONESHOT :: Int
+
+pattern CONNECT_ONESHOT = 4
+
+pattern CONNECT_PERSIST :: Int
+
+pattern CONNECT_PERSIST = 2
+
+pattern NOTIFICATION_PREDELETE :: Int
+
+pattern NOTIFICATION_PREDELETE = 1
+
+script_changed :: Signal GodotObject
+script_changed = Signal "script_changed"
diff --git a/src/Godot/Core/GodotOccluderPolygon2D.hs b/src/Godot/Core/GodotOccluderPolygon2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotOccluderPolygon2D.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotOccluderPolygon2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CULL_CLOCKWISE :: Int
+
+pattern CULL_CLOCKWISE = 1
+
+pattern CULL_DISABLED :: Int
+
+pattern CULL_DISABLED = 0
+
+pattern CULL_COUNTER_CLOCKWISE :: Int
+
+pattern CULL_COUNTER_CLOCKWISE = 2
diff --git a/src/Godot/Core/GodotOmniLight.hs b/src/Godot/Core/GodotOmniLight.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotOmniLight.hs
@@ -0,0 +1,24 @@
+module Godot.Core.GodotOmniLight where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SHADOW_DUAL_PARABOLOID :: Int
+
+pattern SHADOW_DUAL_PARABOLOID = 0
+
+pattern SHADOW_DETAIL_HORIZONTAL :: Int
+
+pattern SHADOW_DETAIL_HORIZONTAL = 1
+
+pattern SHADOW_DETAIL_VERTICAL :: Int
+
+pattern SHADOW_DETAIL_VERTICAL = 0
+
+pattern SHADOW_CUBE :: Int
+
+pattern SHADOW_CUBE = 1
diff --git a/src/Godot/Core/GodotOpenSimplexNoise.hs b/src/Godot/Core/GodotOpenSimplexNoise.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotOpenSimplexNoise.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotOpenSimplexNoise where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotOptionButton.hs b/src/Godot/Core/GodotOptionButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotOptionButton.hs
@@ -0,0 +1,14 @@
+module Godot.Core.GodotOptionButton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+item_focused :: Signal GodotOptionButton
+item_focused = Signal "item_focused"
+
+item_selected :: Signal GodotOptionButton
+item_selected = Signal "item_selected"
diff --git a/src/Godot/Core/GodotOrientedPathFollow.hs b/src/Godot/Core/GodotOrientedPathFollow.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotOrientedPathFollow.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotOrientedPathFollow where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPCKPacker.hs b/src/Godot/Core/GodotPCKPacker.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPCKPacker.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPCKPacker where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPHashTranslation.hs b/src/Godot/Core/GodotPHashTranslation.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPHashTranslation.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPHashTranslation where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPackedDataContainer.hs b/src/Godot/Core/GodotPackedDataContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPackedDataContainer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPackedDataContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPackedDataContainerRef.hs b/src/Godot/Core/GodotPackedDataContainerRef.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPackedDataContainerRef.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPackedDataContainerRef where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPackedScene.hs b/src/Godot/Core/GodotPackedScene.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPackedScene.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotPackedScene where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern GEN_EDIT_STATE_DISABLED :: Int
+
+pattern GEN_EDIT_STATE_DISABLED = 0
+
+pattern GEN_EDIT_STATE_MAIN :: Int
+
+pattern GEN_EDIT_STATE_MAIN = 2
+
+pattern GEN_EDIT_STATE_INSTANCE :: Int
+
+pattern GEN_EDIT_STATE_INSTANCE = 1
diff --git a/src/Godot/Core/GodotPacketPeer.hs b/src/Godot/Core/GodotPacketPeer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPacketPeer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPacketPeer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPacketPeerGDNative.hs b/src/Godot/Core/GodotPacketPeerGDNative.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPacketPeerGDNative.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPacketPeerGDNative where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPacketPeerStream.hs b/src/Godot/Core/GodotPacketPeerStream.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPacketPeerStream.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPacketPeerStream where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPacketPeerUDP.hs b/src/Godot/Core/GodotPacketPeerUDP.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPacketPeerUDP.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPacketPeerUDP where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPanel.hs b/src/Godot/Core/GodotPanel.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPanel.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPanel where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPanelContainer.hs b/src/Godot/Core/GodotPanelContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPanelContainer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPanelContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPanoramaSky.hs b/src/Godot/Core/GodotPanoramaSky.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPanoramaSky.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPanoramaSky where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotParallaxBackground.hs b/src/Godot/Core/GodotParallaxBackground.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotParallaxBackground.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotParallaxBackground where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotParallaxLayer.hs b/src/Godot/Core/GodotParallaxLayer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotParallaxLayer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotParallaxLayer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotParticles.hs b/src/Godot/Core/GodotParticles.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotParticles.hs
@@ -0,0 +1,24 @@
+module Godot.Core.GodotParticles where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MAX_DRAW_PASSES :: Int
+
+pattern MAX_DRAW_PASSES = 4
+
+pattern DRAW_ORDER_LIFETIME :: Int
+
+pattern DRAW_ORDER_LIFETIME = 1
+
+pattern DRAW_ORDER_INDEX :: Int
+
+pattern DRAW_ORDER_INDEX = 0
+
+pattern DRAW_ORDER_VIEW_DEPTH :: Int
+
+pattern DRAW_ORDER_VIEW_DEPTH = 2
diff --git a/src/Godot/Core/GodotParticles2D.hs b/src/Godot/Core/GodotParticles2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotParticles2D.hs
@@ -0,0 +1,16 @@
+module Godot.Core.GodotParticles2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern DRAW_ORDER_LIFETIME :: Int
+
+pattern DRAW_ORDER_LIFETIME = 1
+
+pattern DRAW_ORDER_INDEX :: Int
+
+pattern DRAW_ORDER_INDEX = 0
diff --git a/src/Godot/Core/GodotParticlesMaterial.hs b/src/Godot/Core/GodotParticlesMaterial.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotParticlesMaterial.hs
@@ -0,0 +1,92 @@
+module Godot.Core.GodotParticlesMaterial where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FLAG_ALIGN_Y_TO_VELOCITY :: Int
+
+pattern FLAG_ALIGN_Y_TO_VELOCITY = 0
+
+pattern PARAM_RADIAL_ACCEL :: Int
+
+pattern PARAM_RADIAL_ACCEL = 4
+
+pattern FLAG_ROTATE_Y :: Int
+
+pattern FLAG_ROTATE_Y = 1
+
+pattern EMISSION_SHAPE_SPHERE :: Int
+
+pattern EMISSION_SHAPE_SPHERE = 1
+
+pattern PARAM_ANGULAR_VELOCITY :: Int
+
+pattern PARAM_ANGULAR_VELOCITY = 1
+
+pattern PARAM_TANGENTIAL_ACCEL :: Int
+
+pattern PARAM_TANGENTIAL_ACCEL = 5
+
+pattern PARAM_ANIM_SPEED :: Int
+
+pattern PARAM_ANIM_SPEED = 10
+
+pattern EMISSION_SHAPE_BOX :: Int
+
+pattern EMISSION_SHAPE_BOX = 2
+
+pattern EMISSION_SHAPE_POINTS :: Int
+
+pattern EMISSION_SHAPE_POINTS = 3
+
+pattern PARAM_MAX :: Int
+
+pattern PARAM_MAX = 12
+
+pattern PARAM_INITIAL_LINEAR_VELOCITY :: Int
+
+pattern PARAM_INITIAL_LINEAR_VELOCITY = 0
+
+pattern FLAG_MAX :: Int
+
+pattern FLAG_MAX = 4
+
+pattern PARAM_LINEAR_ACCEL :: Int
+
+pattern PARAM_LINEAR_ACCEL = 3
+
+pattern EMISSION_SHAPE_DIRECTED_POINTS :: Int
+
+pattern EMISSION_SHAPE_DIRECTED_POINTS = 4
+
+pattern EMISSION_SHAPE_POINT :: Int
+
+pattern EMISSION_SHAPE_POINT = 0
+
+pattern PARAM_ORBIT_VELOCITY :: Int
+
+pattern PARAM_ORBIT_VELOCITY = 2
+
+pattern PARAM_SCALE :: Int
+
+pattern PARAM_SCALE = 8
+
+pattern PARAM_DAMPING :: Int
+
+pattern PARAM_DAMPING = 6
+
+pattern PARAM_HUE_VARIATION :: Int
+
+pattern PARAM_HUE_VARIATION = 9
+
+pattern PARAM_ANIM_OFFSET :: Int
+
+pattern PARAM_ANIM_OFFSET = 11
+
+pattern PARAM_ANGLE :: Int
+
+pattern PARAM_ANGLE = 7
diff --git a/src/Godot/Core/GodotPath.hs b/src/Godot/Core/GodotPath.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPath.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotPath where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+curve_changed :: Signal GodotPath
+curve_changed = Signal "curve_changed"
diff --git a/src/Godot/Core/GodotPath2D.hs b/src/Godot/Core/GodotPath2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPath2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPath2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPathFollow.hs b/src/Godot/Core/GodotPathFollow.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPathFollow.hs
@@ -0,0 +1,24 @@
+module Godot.Core.GodotPathFollow where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ROTATION_XY :: Int
+
+pattern ROTATION_XY = 2
+
+pattern ROTATION_Y :: Int
+
+pattern ROTATION_Y = 1
+
+pattern ROTATION_XYZ :: Int
+
+pattern ROTATION_XYZ = 3
+
+pattern ROTATION_NONE :: Int
+
+pattern ROTATION_NONE = 0
diff --git a/src/Godot/Core/GodotPathFollow2D.hs b/src/Godot/Core/GodotPathFollow2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPathFollow2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPathFollow2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPerformance.hs b/src/Godot/Core/GodotPerformance.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPerformance.hs
@@ -0,0 +1,124 @@
+module Godot.Core.GodotPerformance where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern PHYSICS_2D_ISLAND_COUNT :: Int
+
+pattern PHYSICS_2D_ISLAND_COUNT = 23
+
+pattern OBJECT_RESOURCE_COUNT :: Int
+
+pattern OBJECT_RESOURCE_COUNT = 9
+
+pattern RENDER_VERTEX_MEM_USED :: Int
+
+pattern RENDER_VERTEX_MEM_USED = 19
+
+pattern PHYSICS_3D_ISLAND_COUNT :: Int
+
+pattern PHYSICS_3D_ISLAND_COUNT = 26
+
+pattern PHYSICS_2D_COLLISION_PAIRS :: Int
+
+pattern PHYSICS_2D_COLLISION_PAIRS = 22
+
+pattern MEMORY_STATIC_MAX :: Int
+
+pattern MEMORY_STATIC_MAX = 5
+
+pattern TIME_PHYSICS_PROCESS :: Int
+
+pattern TIME_PHYSICS_PROCESS = 2
+
+pattern RENDER_TEXTURE_MEM_USED :: Int
+
+pattern RENDER_TEXTURE_MEM_USED = 18
+
+pattern MEMORY_DYNAMIC_MAX :: Int
+
+pattern MEMORY_DYNAMIC_MAX = 6
+
+pattern MEMORY_DYNAMIC :: Int
+
+pattern MEMORY_DYNAMIC = 4
+
+pattern RENDER_MATERIAL_CHANGES_IN_FRAME :: Int
+
+pattern RENDER_MATERIAL_CHANGES_IN_FRAME = 13
+
+pattern OBJECT_NODE_COUNT :: Int
+
+pattern OBJECT_NODE_COUNT = 10
+
+pattern AUDIO_OUTPUT_LATENCY :: Int
+
+pattern AUDIO_OUTPUT_LATENCY = 27
+
+pattern RENDER_OBJECTS_IN_FRAME :: Int
+
+pattern RENDER_OBJECTS_IN_FRAME = 11
+
+pattern RENDER_DRAW_CALLS_IN_FRAME :: Int
+
+pattern RENDER_DRAW_CALLS_IN_FRAME = 16
+
+pattern TIME_PROCESS :: Int
+
+pattern TIME_PROCESS = 1
+
+pattern MEMORY_MESSAGE_BUFFER_MAX :: Int
+
+pattern MEMORY_MESSAGE_BUFFER_MAX = 7
+
+pattern PHYSICS_3D_COLLISION_PAIRS :: Int
+
+pattern PHYSICS_3D_COLLISION_PAIRS = 25
+
+pattern RENDER_SHADER_CHANGES_IN_FRAME :: Int
+
+pattern RENDER_SHADER_CHANGES_IN_FRAME = 14
+
+pattern MONITOR_MAX :: Int
+
+pattern MONITOR_MAX = 28
+
+pattern TIME_FPS :: Int
+
+pattern TIME_FPS = 0
+
+pattern PHYSICS_2D_ACTIVE_OBJECTS :: Int
+
+pattern PHYSICS_2D_ACTIVE_OBJECTS = 21
+
+pattern RENDER_SURFACE_CHANGES_IN_FRAME :: Int
+
+pattern RENDER_SURFACE_CHANGES_IN_FRAME = 15
+
+pattern RENDER_VIDEO_MEM_USED :: Int
+
+pattern RENDER_VIDEO_MEM_USED = 17
+
+pattern MEMORY_STATIC :: Int
+
+pattern MEMORY_STATIC = 3
+
+pattern RENDER_VERTICES_IN_FRAME :: Int
+
+pattern RENDER_VERTICES_IN_FRAME = 12
+
+pattern OBJECT_COUNT :: Int
+
+pattern OBJECT_COUNT = 8
+
+pattern PHYSICS_3D_ACTIVE_OBJECTS :: Int
+
+pattern PHYSICS_3D_ACTIVE_OBJECTS = 24
+
+pattern RENDER_USAGE_VIDEO_MEM_TOTAL :: Int
+
+pattern RENDER_USAGE_VIDEO_MEM_TOTAL = 20
diff --git a/src/Godot/Core/GodotPhysicalBone.hs b/src/Godot/Core/GodotPhysicalBone.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysicalBone.hs
@@ -0,0 +1,32 @@
+module Godot.Core.GodotPhysicalBone where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern JOINT_TYPE_6DOF :: Int
+
+pattern JOINT_TYPE_6DOF = 5
+
+pattern JOINT_TYPE_PIN :: Int
+
+pattern JOINT_TYPE_PIN = 1
+
+pattern JOINT_TYPE_CONE :: Int
+
+pattern JOINT_TYPE_CONE = 2
+
+pattern JOINT_TYPE_NONE :: Int
+
+pattern JOINT_TYPE_NONE = 0
+
+pattern JOINT_TYPE_SLIDER :: Int
+
+pattern JOINT_TYPE_SLIDER = 4
+
+pattern JOINT_TYPE_HINGE :: Int
+
+pattern JOINT_TYPE_HINGE = 3
diff --git a/src/Godot/Core/GodotPhysics2DDirectBodyState.hs b/src/Godot/Core/GodotPhysics2DDirectBodyState.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysics2DDirectBodyState.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysics2DDirectBodyState where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysics2DDirectBodyStateSW.hs b/src/Godot/Core/GodotPhysics2DDirectBodyStateSW.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysics2DDirectBodyStateSW.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysics2DDirectBodyStateSW where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysics2DDirectSpaceState.hs b/src/Godot/Core/GodotPhysics2DDirectSpaceState.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysics2DDirectSpaceState.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysics2DDirectSpaceState where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysics2DServer.hs b/src/Godot/Core/GodotPhysics2DServer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysics2DServer.hs
@@ -0,0 +1,260 @@
+module Godot.Core.GodotPhysics2DServer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS :: Int
+
+pattern SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS = 6
+
+pattern AREA_SPACE_OVERRIDE_REPLACE :: Int
+
+pattern AREA_SPACE_OVERRIDE_REPLACE = 3
+
+pattern CCD_MODE_DISABLED :: Int
+
+pattern CCD_MODE_DISABLED = 0
+
+pattern JOINT_PARAM_MAX_FORCE :: Int
+
+pattern JOINT_PARAM_MAX_FORCE = 2
+
+pattern CCD_MODE_CAST_RAY :: Int
+
+pattern CCD_MODE_CAST_RAY = 1
+
+pattern JOINT_GROOVE :: Int
+
+pattern JOINT_GROOVE = 1
+
+pattern BODY_PARAM_BOUNCE :: Int
+
+pattern BODY_PARAM_BOUNCE = 0
+
+pattern BODY_MODE_CHARACTER :: Int
+
+pattern BODY_MODE_CHARACTER = 3
+
+pattern SHAPE_RAY :: Int
+
+pattern SHAPE_RAY = 1
+
+pattern CCD_MODE_CAST_SHAPE :: Int
+
+pattern CCD_MODE_CAST_SHAPE = 2
+
+pattern BODY_STATE_LINEAR_VELOCITY :: Int
+
+pattern BODY_STATE_LINEAR_VELOCITY = 1
+
+pattern AREA_PARAM_LINEAR_DAMP :: Int
+
+pattern AREA_PARAM_LINEAR_DAMP = 5
+
+pattern BODY_PARAM_ANGULAR_DAMP :: Int
+
+pattern BODY_PARAM_ANGULAR_DAMP = 6
+
+pattern SPACE_PARAM_BODY_TIME_TO_SLEEP :: Int
+
+pattern SPACE_PARAM_BODY_TIME_TO_SLEEP = 5
+
+pattern BODY_PARAM_LINEAR_DAMP :: Int
+
+pattern BODY_PARAM_LINEAR_DAMP = 5
+
+pattern AREA_PARAM_GRAVITY_DISTANCE_SCALE :: Int
+
+pattern AREA_PARAM_GRAVITY_DISTANCE_SCALE = 3
+
+pattern BODY_STATE_ANGULAR_VELOCITY :: Int
+
+pattern BODY_STATE_ANGULAR_VELOCITY = 2
+
+pattern AREA_BODY_REMOVED :: Int
+
+pattern AREA_BODY_REMOVED = 1
+
+pattern BODY_STATE_SLEEPING :: Int
+
+pattern BODY_STATE_SLEEPING = 3
+
+pattern INFO_ISLAND_COUNT :: Int
+
+pattern INFO_ISLAND_COUNT = 2
+
+pattern AREA_SPACE_OVERRIDE_DISABLED :: Int
+
+pattern AREA_SPACE_OVERRIDE_DISABLED = 0
+
+pattern AREA_PARAM_GRAVITY_IS_POINT :: Int
+
+pattern AREA_PARAM_GRAVITY_IS_POINT = 2
+
+pattern AREA_PARAM_GRAVITY_POINT_ATTENUATION :: Int
+
+pattern AREA_PARAM_GRAVITY_POINT_ATTENUATION = 4
+
+pattern BODY_STATE_TRANSFORM :: Int
+
+pattern BODY_STATE_TRANSFORM = 0
+
+pattern BODY_PARAM_INERTIA :: Int
+
+pattern BODY_PARAM_INERTIA = 3
+
+pattern BODY_PARAM_MASS :: Int
+
+pattern BODY_PARAM_MASS = 2
+
+pattern BODY_MODE_STATIC :: Int
+
+pattern BODY_MODE_STATIC = 0
+
+pattern JOINT_PARAM_MAX_BIAS :: Int
+
+pattern JOINT_PARAM_MAX_BIAS = 1
+
+pattern SHAPE_SEGMENT :: Int
+
+pattern SHAPE_SEGMENT = 2
+
+pattern BODY_PARAM_GRAVITY_SCALE :: Int
+
+pattern BODY_PARAM_GRAVITY_SCALE = 4
+
+pattern JOINT_DAMPED_SPRING :: Int
+
+pattern JOINT_DAMPED_SPRING = 2
+
+pattern AREA_PARAM_GRAVITY :: Int
+
+pattern AREA_PARAM_GRAVITY = 0
+
+pattern INFO_COLLISION_PAIRS :: Int
+
+pattern INFO_COLLISION_PAIRS = 1
+
+pattern SHAPE_RECTANGLE :: Int
+
+pattern SHAPE_RECTANGLE = 4
+
+pattern INFO_ACTIVE_OBJECTS :: Int
+
+pattern INFO_ACTIVE_OBJECTS = 0
+
+pattern DAMPED_STRING_DAMPING :: Int
+
+pattern DAMPED_STRING_DAMPING = 2
+
+pattern SPACE_PARAM_CONTACT_RECYCLE_RADIUS :: Int
+
+pattern SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0
+
+pattern SPACE_PARAM_CONTACT_MAX_SEPARATION :: Int
+
+pattern SPACE_PARAM_CONTACT_MAX_SEPARATION = 1
+
+pattern DAMPED_STRING_REST_LENGTH :: Int
+
+pattern DAMPED_STRING_REST_LENGTH = 0
+
+pattern AREA_BODY_ADDED :: Int
+
+pattern AREA_BODY_ADDED = 0
+
+pattern AREA_SPACE_OVERRIDE_COMBINE_REPLACE :: Int
+
+pattern AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2
+
+pattern SHAPE_CIRCLE :: Int
+
+pattern SHAPE_CIRCLE = 3
+
+pattern SHAPE_CONVEX_POLYGON :: Int
+
+pattern SHAPE_CONVEX_POLYGON = 6
+
+pattern AREA_PARAM_PRIORITY :: Int
+
+pattern AREA_PARAM_PRIORITY = 7
+
+pattern AREA_SPACE_OVERRIDE_REPLACE_COMBINE :: Int
+
+pattern AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4
+
+pattern BODY_MODE_RIGID :: Int
+
+pattern BODY_MODE_RIGID = 2
+
+pattern SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION :: Int
+
+pattern SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION = 2
+
+pattern BODY_PARAM_FRICTION :: Int
+
+pattern BODY_PARAM_FRICTION = 1
+
+pattern SHAPE_CAPSULE :: Int
+
+pattern SHAPE_CAPSULE = 5
+
+pattern AREA_PARAM_ANGULAR_DAMP :: Int
+
+pattern AREA_PARAM_ANGULAR_DAMP = 6
+
+pattern BODY_MODE_KINEMATIC :: Int
+
+pattern BODY_MODE_KINEMATIC = 1
+
+pattern SHAPE_CONCAVE_POLYGON :: Int
+
+pattern SHAPE_CONCAVE_POLYGON = 7
+
+pattern AREA_PARAM_GRAVITY_VECTOR :: Int
+
+pattern AREA_PARAM_GRAVITY_VECTOR = 1
+
+pattern JOINT_PARAM_BIAS :: Int
+
+pattern JOINT_PARAM_BIAS = 0
+
+pattern SHAPE_CUSTOM :: Int
+
+pattern SHAPE_CUSTOM = 8
+
+pattern BODY_STATE_CAN_SLEEP :: Int
+
+pattern BODY_STATE_CAN_SLEEP = 4
+
+pattern BODY_PARAM_MAX :: Int
+
+pattern BODY_PARAM_MAX = 7
+
+pattern SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD :: Int
+
+pattern SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 4
+
+pattern SHAPE_LINE :: Int
+
+pattern SHAPE_LINE = 0
+
+pattern JOINT_PIN :: Int
+
+pattern JOINT_PIN = 0
+
+pattern AREA_SPACE_OVERRIDE_COMBINE :: Int
+
+pattern AREA_SPACE_OVERRIDE_COMBINE = 1
+
+pattern DAMPED_STRING_STIFFNESS :: Int
+
+pattern DAMPED_STRING_STIFFNESS = 1
+
+pattern SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD :: Int
+
+pattern SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 3
diff --git a/src/Godot/Core/GodotPhysics2DServerSW.hs b/src/Godot/Core/GodotPhysics2DServerSW.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysics2DServerSW.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysics2DServerSW where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysics2DShapeQueryParameters.hs b/src/Godot/Core/GodotPhysics2DShapeQueryParameters.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysics2DShapeQueryParameters.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysics2DShapeQueryParameters where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysics2DShapeQueryResult.hs b/src/Godot/Core/GodotPhysics2DShapeQueryResult.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysics2DShapeQueryResult.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysics2DShapeQueryResult where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysics2DTestMotionResult.hs b/src/Godot/Core/GodotPhysics2DTestMotionResult.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysics2DTestMotionResult.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysics2DTestMotionResult where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysicsBody.hs b/src/Godot/Core/GodotPhysicsBody.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysicsBody.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysicsBody where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysicsBody2D.hs b/src/Godot/Core/GodotPhysicsBody2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysicsBody2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysicsBody2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysicsDirectBodyState.hs b/src/Godot/Core/GodotPhysicsDirectBodyState.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysicsDirectBodyState.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysicsDirectBodyState where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysicsDirectSpaceState.hs b/src/Godot/Core/GodotPhysicsDirectSpaceState.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysicsDirectSpaceState.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysicsDirectSpaceState where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysicsMaterial.hs b/src/Godot/Core/GodotPhysicsMaterial.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysicsMaterial.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysicsMaterial where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysicsServer.hs b/src/Godot/Core/GodotPhysicsServer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysicsServer.hs
@@ -0,0 +1,504 @@
+module Godot.Core.GodotPhysicsServer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS :: Int
+
+pattern SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS = 7
+
+pattern JOINT_SLIDER :: Int
+
+pattern JOINT_SLIDER = 2
+
+pattern G6DOF_JOINT_FLAG_ENABLE_MOTOR :: Int
+
+pattern G6DOF_JOINT_FLAG_ENABLE_MOTOR = 2
+
+pattern HINGE_JOINT_LIMIT_SOFTNESS :: Int
+
+pattern HINGE_JOINT_LIMIT_SOFTNESS = 4
+
+pattern G6DOF_JOINT_LINEAR_RESTITUTION :: Int
+
+pattern G6DOF_JOINT_LINEAR_RESTITUTION = 3
+
+pattern CONE_TWIST_JOINT_SWING_SPAN :: Int
+
+pattern CONE_TWIST_JOINT_SWING_SPAN = 0
+
+pattern AREA_SPACE_OVERRIDE_REPLACE :: Int
+
+pattern AREA_SPACE_OVERRIDE_REPLACE = 3
+
+pattern SLIDER_JOINT_LINEAR_MOTION_RESTITUTION :: Int
+
+pattern SLIDER_JOINT_LINEAR_MOTION_RESTITUTION = 6
+
+pattern G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT :: Int
+
+pattern G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT = 15
+
+pattern SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION :: Int
+
+pattern SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION = 9
+
+pattern SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO :: Int
+
+pattern SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO = 6
+
+pattern HINGE_JOINT_MOTOR_MAX_IMPULSE :: Int
+
+pattern HINGE_JOINT_MOTOR_MAX_IMPULSE = 7
+
+pattern G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT :: Int
+
+pattern G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT = 1
+
+pattern G6DOF_JOINT_ANGULAR_UPPER_LIMIT :: Int
+
+pattern G6DOF_JOINT_ANGULAR_UPPER_LIMIT = 8
+
+pattern BODY_PARAM_BOUNCE :: Int
+
+pattern BODY_PARAM_BOUNCE = 0
+
+pattern BODY_AXIS_ANGULAR_Y :: Int
+
+pattern BODY_AXIS_ANGULAR_Y = 16
+
+pattern SLIDER_JOINT_ANGULAR_LIMIT_LOWER :: Int
+
+pattern SLIDER_JOINT_ANGULAR_LIMIT_LOWER = 12
+
+pattern SHAPE_CYLINDER :: Int
+
+pattern SHAPE_CYLINDER = 5
+
+pattern BODY_MODE_CHARACTER :: Int
+
+pattern BODY_MODE_CHARACTER = 3
+
+pattern SHAPE_RAY :: Int
+
+pattern SHAPE_RAY = 1
+
+pattern BODY_STATE_LINEAR_VELOCITY :: Int
+
+pattern BODY_STATE_LINEAR_VELOCITY = 1
+
+pattern HINGE_JOINT_BIAS :: Int
+
+pattern HINGE_JOINT_BIAS = 0
+
+pattern AREA_PARAM_LINEAR_DAMP :: Int
+
+pattern AREA_PARAM_LINEAR_DAMP = 5
+
+pattern BODY_PARAM_ANGULAR_DAMP :: Int
+
+pattern BODY_PARAM_ANGULAR_DAMP = 5
+
+pattern SPACE_PARAM_BODY_TIME_TO_SLEEP :: Int
+
+pattern SPACE_PARAM_BODY_TIME_TO_SLEEP = 5
+
+pattern SLIDER_JOINT_LINEAR_MOTION_SOFTNESS :: Int
+
+pattern SLIDER_JOINT_LINEAR_MOTION_SOFTNESS = 5
+
+pattern BODY_PARAM_LINEAR_DAMP :: Int
+
+pattern BODY_PARAM_LINEAR_DAMP = 4
+
+pattern AREA_PARAM_GRAVITY_DISTANCE_SCALE :: Int
+
+pattern AREA_PARAM_GRAVITY_DISTANCE_SCALE = 3
+
+pattern BODY_STATE_ANGULAR_VELOCITY :: Int
+
+pattern BODY_STATE_ANGULAR_VELOCITY = 2
+
+pattern AREA_BODY_REMOVED :: Int
+
+pattern AREA_BODY_REMOVED = 1
+
+pattern BODY_STATE_SLEEPING :: Int
+
+pattern BODY_STATE_SLEEPING = 3
+
+pattern G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS :: Int
+
+pattern G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS = 9
+
+pattern INFO_ISLAND_COUNT :: Int
+
+pattern INFO_ISLAND_COUNT = 2
+
+pattern SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION :: Int
+
+pattern SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION = 14
+
+pattern AREA_SPACE_OVERRIDE_DISABLED :: Int
+
+pattern AREA_SPACE_OVERRIDE_DISABLED = 0
+
+pattern SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION :: Int
+
+pattern SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION = 20
+
+pattern AREA_PARAM_GRAVITY_IS_POINT :: Int
+
+pattern AREA_PARAM_GRAVITY_IS_POINT = 2
+
+pattern G6DOF_JOINT_LINEAR_UPPER_LIMIT :: Int
+
+pattern G6DOF_JOINT_LINEAR_UPPER_LIMIT = 1
+
+pattern AREA_PARAM_GRAVITY_POINT_ATTENUATION :: Int
+
+pattern AREA_PARAM_GRAVITY_POINT_ATTENUATION = 4
+
+pattern G6DOF_JOINT_ANGULAR_FORCE_LIMIT :: Int
+
+pattern G6DOF_JOINT_ANGULAR_FORCE_LIMIT = 12
+
+pattern SLIDER_JOINT_LINEAR_LIMIT_DAMPING :: Int
+
+pattern SLIDER_JOINT_LINEAR_LIMIT_DAMPING = 4
+
+pattern BODY_STATE_TRANSFORM :: Int
+
+pattern BODY_STATE_TRANSFORM = 0
+
+pattern BODY_AXIS_LINEAR_Z :: Int
+
+pattern BODY_AXIS_LINEAR_Z = 4
+
+pattern SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION :: Int
+
+pattern SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION = 17
+
+pattern BODY_PARAM_MASS :: Int
+
+pattern BODY_PARAM_MASS = 2
+
+pattern G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT :: Int
+
+pattern G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT = 6
+
+pattern BODY_MODE_STATIC :: Int
+
+pattern BODY_MODE_STATIC = 0
+
+pattern G6DOF_JOINT_ANGULAR_RESTITUTION :: Int
+
+pattern G6DOF_JOINT_ANGULAR_RESTITUTION = 11
+
+pattern HINGE_JOINT_LIMIT_UPPER :: Int
+
+pattern HINGE_JOINT_LIMIT_UPPER = 1
+
+pattern BODY_PARAM_GRAVITY_SCALE :: Int
+
+pattern BODY_PARAM_GRAVITY_SCALE = 3
+
+pattern HINGE_JOINT_MOTOR_TARGET_VELOCITY :: Int
+
+pattern HINGE_JOINT_MOTOR_TARGET_VELOCITY = 6
+
+pattern SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS :: Int
+
+pattern SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS = 8
+
+pattern PIN_JOINT_IMPULSE_CLAMP :: Int
+
+pattern PIN_JOINT_IMPULSE_CLAMP = 2
+
+pattern SHAPE_PLANE :: Int
+
+pattern SHAPE_PLANE = 0
+
+pattern SLIDER_JOINT_ANGULAR_LIMIT_UPPER :: Int
+
+pattern SLIDER_JOINT_ANGULAR_LIMIT_UPPER = 11
+
+pattern AREA_PARAM_GRAVITY :: Int
+
+pattern AREA_PARAM_GRAVITY = 0
+
+pattern G6DOF_JOINT_ANGULAR_LOWER_LIMIT :: Int
+
+pattern G6DOF_JOINT_ANGULAR_LOWER_LIMIT = 7
+
+pattern HINGE_JOINT_LIMIT_RELAXATION :: Int
+
+pattern HINGE_JOINT_LIMIT_RELAXATION = 5
+
+pattern SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS :: Int
+
+pattern SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS = 13
+
+pattern INFO_COLLISION_PAIRS :: Int
+
+pattern INFO_COLLISION_PAIRS = 1
+
+pattern SLIDER_JOINT_LINEAR_LIMIT_UPPER :: Int
+
+pattern SLIDER_JOINT_LINEAR_LIMIT_UPPER = 0
+
+pattern PIN_JOINT_DAMPING :: Int
+
+pattern PIN_JOINT_DAMPING = 1
+
+pattern HINGE_JOINT_FLAG_USE_LIMIT :: Int
+
+pattern HINGE_JOINT_FLAG_USE_LIMIT = 0
+
+pattern SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS :: Int
+
+pattern SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS = 19
+
+pattern BODY_AXIS_ANGULAR_Z :: Int
+
+pattern BODY_AXIS_ANGULAR_Z = 32
+
+pattern SLIDER_JOINT_ANGULAR_LIMIT_DAMPING :: Int
+
+pattern SLIDER_JOINT_ANGULAR_LIMIT_DAMPING = 15
+
+pattern SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING :: Int
+
+pattern SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING = 21
+
+pattern INFO_ACTIVE_OBJECTS :: Int
+
+pattern INFO_ACTIVE_OBJECTS = 0
+
+pattern CONE_TWIST_JOINT_RELAXATION :: Int
+
+pattern CONE_TWIST_JOINT_RELAXATION = 4
+
+pattern SPACE_PARAM_CONTACT_RECYCLE_RADIUS :: Int
+
+pattern SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0
+
+pattern JOINT_HINGE :: Int
+
+pattern JOINT_HINGE = 1
+
+pattern JOINT_CONE_TWIST :: Int
+
+pattern JOINT_CONE_TWIST = 3
+
+pattern SPACE_PARAM_CONTACT_MAX_SEPARATION :: Int
+
+pattern SPACE_PARAM_CONTACT_MAX_SEPARATION = 1
+
+pattern SLIDER_JOINT_MAX :: Int
+
+pattern SLIDER_JOINT_MAX = 22
+
+pattern G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS :: Int
+
+pattern G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS = 2
+
+pattern AREA_BODY_ADDED :: Int
+
+pattern AREA_BODY_ADDED = 0
+
+pattern G6DOF_JOINT_ANGULAR_DAMPING :: Int
+
+pattern G6DOF_JOINT_ANGULAR_DAMPING = 10
+
+pattern SLIDER_JOINT_ANGULAR_MOTION_DAMPING :: Int
+
+pattern SLIDER_JOINT_ANGULAR_MOTION_DAMPING = 18
+
+pattern SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION :: Int
+
+pattern SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION = 3
+
+pattern AREA_SPACE_OVERRIDE_COMBINE_REPLACE :: Int
+
+pattern AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2
+
+pattern SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS :: Int
+
+pattern SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS = 16
+
+pattern JOINT_6DOF :: Int
+
+pattern JOINT_6DOF = 4
+
+pattern CONE_TWIST_JOINT_BIAS :: Int
+
+pattern CONE_TWIST_JOINT_BIAS = 2
+
+pattern SHAPE_CONVEX_POLYGON :: Int
+
+pattern SHAPE_CONVEX_POLYGON = 6
+
+pattern G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY :: Int
+
+pattern G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY = 14
+
+pattern AREA_PARAM_PRIORITY :: Int
+
+pattern AREA_PARAM_PRIORITY = 7
+
+pattern AREA_SPACE_OVERRIDE_REPLACE_COMBINE :: Int
+
+pattern AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4
+
+pattern BODY_MODE_RIGID :: Int
+
+pattern BODY_MODE_RIGID = 2
+
+pattern HINGE_JOINT_LIMIT_LOWER :: Int
+
+pattern HINGE_JOINT_LIMIT_LOWER = 2
+
+pattern SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION :: Int
+
+pattern SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION = 2
+
+pattern BODY_PARAM_FRICTION :: Int
+
+pattern BODY_PARAM_FRICTION = 1
+
+pattern SHAPE_CAPSULE :: Int
+
+pattern SHAPE_CAPSULE = 4
+
+pattern AREA_PARAM_ANGULAR_DAMP :: Int
+
+pattern AREA_PARAM_ANGULAR_DAMP = 6
+
+pattern G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY :: Int
+
+pattern G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY = 5
+
+pattern HINGE_JOINT_FLAG_ENABLE_MOTOR :: Int
+
+pattern HINGE_JOINT_FLAG_ENABLE_MOTOR = 1
+
+pattern SHAPE_BOX :: Int
+
+pattern SHAPE_BOX = 3
+
+pattern CONE_TWIST_JOINT_TWIST_SPAN :: Int
+
+pattern CONE_TWIST_JOINT_TWIST_SPAN = 1
+
+pattern BODY_MODE_KINEMATIC :: Int
+
+pattern BODY_MODE_KINEMATIC = 1
+
+pattern SHAPE_CONCAVE_POLYGON :: Int
+
+pattern SHAPE_CONCAVE_POLYGON = 7
+
+pattern G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT :: Int
+
+pattern G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT = 0
+
+pattern HINGE_JOINT_LIMIT_BIAS :: Int
+
+pattern HINGE_JOINT_LIMIT_BIAS = 3
+
+pattern G6DOF_JOINT_ANGULAR_ERP :: Int
+
+pattern G6DOF_JOINT_ANGULAR_ERP = 13
+
+pattern BODY_AXIS_LINEAR_Y :: Int
+
+pattern BODY_AXIS_LINEAR_Y = 2
+
+pattern SLIDER_JOINT_LINEAR_LIMIT_LOWER :: Int
+
+pattern SLIDER_JOINT_LINEAR_LIMIT_LOWER = 1
+
+pattern SLIDER_JOINT_LINEAR_MOTION_DAMPING :: Int
+
+pattern SLIDER_JOINT_LINEAR_MOTION_DAMPING = 7
+
+pattern G6DOF_JOINT_LINEAR_DAMPING :: Int
+
+pattern G6DOF_JOINT_LINEAR_DAMPING = 4
+
+pattern PIN_JOINT_BIAS :: Int
+
+pattern PIN_JOINT_BIAS = 0
+
+pattern AREA_PARAM_GRAVITY_VECTOR :: Int
+
+pattern AREA_PARAM_GRAVITY_VECTOR = 1
+
+pattern SHAPE_CUSTOM :: Int
+
+pattern SHAPE_CUSTOM = 9
+
+pattern BODY_STATE_CAN_SLEEP :: Int
+
+pattern BODY_STATE_CAN_SLEEP = 4
+
+pattern SHAPE_HEIGHTMAP :: Int
+
+pattern SHAPE_HEIGHTMAP = 8
+
+pattern BODY_PARAM_MAX :: Int
+
+pattern BODY_PARAM_MAX = 6
+
+pattern SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING :: Int
+
+pattern SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING = 10
+
+pattern SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD :: Int
+
+pattern SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 4
+
+pattern CONE_TWIST_JOINT_SOFTNESS :: Int
+
+pattern CONE_TWIST_JOINT_SOFTNESS = 3
+
+pattern BODY_AXIS_ANGULAR_X :: Int
+
+pattern BODY_AXIS_ANGULAR_X = 8
+
+pattern JOINT_PIN :: Int
+
+pattern JOINT_PIN = 0
+
+pattern SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS :: Int
+
+pattern SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS = 2
+
+pattern G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR :: Int
+
+pattern G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR = 3
+
+pattern G6DOF_JOINT_LINEAR_LOWER_LIMIT :: Int
+
+pattern G6DOF_JOINT_LINEAR_LOWER_LIMIT = 0
+
+pattern BODY_AXIS_LINEAR_X :: Int
+
+pattern BODY_AXIS_LINEAR_X = 1
+
+pattern SHAPE_SPHERE :: Int
+
+pattern SHAPE_SPHERE = 2
+
+pattern AREA_SPACE_OVERRIDE_COMBINE :: Int
+
+pattern AREA_SPACE_OVERRIDE_COMBINE = 1
+
+pattern SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD :: Int
+
+pattern SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 3
diff --git a/src/Godot/Core/GodotPhysicsShapeQueryParameters.hs b/src/Godot/Core/GodotPhysicsShapeQueryParameters.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysicsShapeQueryParameters.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysicsShapeQueryParameters where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPhysicsShapeQueryResult.hs b/src/Godot/Core/GodotPhysicsShapeQueryResult.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPhysicsShapeQueryResult.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPhysicsShapeQueryResult where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPinJoint.hs b/src/Godot/Core/GodotPinJoint.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPinJoint.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotPinJoint where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern PARAM_IMPULSE_CLAMP :: Int
+
+pattern PARAM_IMPULSE_CLAMP = 2
+
+pattern PARAM_DAMPING :: Int
+
+pattern PARAM_DAMPING = 1
+
+pattern PARAM_BIAS :: Int
+
+pattern PARAM_BIAS = 0
diff --git a/src/Godot/Core/GodotPinJoint2D.hs b/src/Godot/Core/GodotPinJoint2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPinJoint2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPinJoint2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPlaneMesh.hs b/src/Godot/Core/GodotPlaneMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPlaneMesh.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPlaneMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPlaneShape.hs b/src/Godot/Core/GodotPlaneShape.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPlaneShape.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPlaneShape where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPluginScript.hs b/src/Godot/Core/GodotPluginScript.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPluginScript.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPluginScript where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPolygon2D.hs b/src/Godot/Core/GodotPolygon2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPolygon2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPolygon2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPolygonPathFinder.hs b/src/Godot/Core/GodotPolygonPathFinder.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPolygonPathFinder.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPolygonPathFinder where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPopup.hs b/src/Godot/Core/GodotPopup.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPopup.hs
@@ -0,0 +1,22 @@
+module Godot.Core.GodotPopup where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern NOTIFICATION_POST_POPUP :: Int
+
+pattern NOTIFICATION_POST_POPUP = 80
+
+pattern NOTIFICATION_POPUP_HIDE :: Int
+
+pattern NOTIFICATION_POPUP_HIDE = 81
+
+popup_hide :: Signal GodotPopup
+popup_hide = Signal "popup_hide"
+
+about_to_show :: Signal GodotPopup
+about_to_show = Signal "about_to_show"
diff --git a/src/Godot/Core/GodotPopupDialog.hs b/src/Godot/Core/GodotPopupDialog.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPopupDialog.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPopupDialog where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPopupMenu.hs b/src/Godot/Core/GodotPopupMenu.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPopupMenu.hs
@@ -0,0 +1,17 @@
+module Godot.Core.GodotPopupMenu where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+index_pressed :: Signal GodotPopupMenu
+index_pressed = Signal "index_pressed"
+
+id_focused :: Signal GodotPopupMenu
+id_focused = Signal "id_focused"
+
+id_pressed :: Signal GodotPopupMenu
+id_pressed = Signal "id_pressed"
diff --git a/src/Godot/Core/GodotPopupPanel.hs b/src/Godot/Core/GodotPopupPanel.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPopupPanel.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPopupPanel where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPosition2D.hs b/src/Godot/Core/GodotPosition2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPosition2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPosition2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPosition3D.hs b/src/Godot/Core/GodotPosition3D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPosition3D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPosition3D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPrimitiveMesh.hs b/src/Godot/Core/GodotPrimitiveMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPrimitiveMesh.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPrimitiveMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotPrismMesh.hs b/src/Godot/Core/GodotPrismMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotPrismMesh.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotPrismMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotProceduralSky.hs b/src/Godot/Core/GodotProceduralSky.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotProceduralSky.hs
@@ -0,0 +1,32 @@
+module Godot.Core.GodotProceduralSky where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern TEXTURE_SIZE_512 :: Int
+
+pattern TEXTURE_SIZE_512 = 1
+
+pattern TEXTURE_SIZE_2048 :: Int
+
+pattern TEXTURE_SIZE_2048 = 3
+
+pattern TEXTURE_SIZE_1024 :: Int
+
+pattern TEXTURE_SIZE_1024 = 2
+
+pattern TEXTURE_SIZE_256 :: Int
+
+pattern TEXTURE_SIZE_256 = 0
+
+pattern TEXTURE_SIZE_MAX :: Int
+
+pattern TEXTURE_SIZE_MAX = 5
+
+pattern TEXTURE_SIZE_4096 :: Int
+
+pattern TEXTURE_SIZE_4096 = 4
diff --git a/src/Godot/Core/GodotProgressBar.hs b/src/Godot/Core/GodotProgressBar.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotProgressBar.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotProgressBar where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotProjectSettings.hs b/src/Godot/Core/GodotProjectSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotProjectSettings.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotProjectSettings where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotProximityGroup.hs b/src/Godot/Core/GodotProximityGroup.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotProximityGroup.hs
@@ -0,0 +1,19 @@
+module Godot.Core.GodotProximityGroup where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MODE_SIGNAL :: Int
+
+pattern MODE_SIGNAL = 1
+
+pattern MODE_PROXY :: Int
+
+pattern MODE_PROXY = 0
+
+broadcast :: Signal GodotProximityGroup
+broadcast = Signal "broadcast"
diff --git a/src/Godot/Core/GodotProxyTexture.hs b/src/Godot/Core/GodotProxyTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotProxyTexture.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotProxyTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotQuadMesh.hs b/src/Godot/Core/GodotQuadMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotQuadMesh.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotQuadMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotRange.hs b/src/Godot/Core/GodotRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRange.hs
@@ -0,0 +1,14 @@
+module Godot.Core.GodotRange where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+value_changed :: Signal GodotRange
+value_changed = Signal "value_changed"
+
+changed :: Signal GodotRange
+changed = Signal "changed"
diff --git a/src/Godot/Core/GodotRayCast.hs b/src/Godot/Core/GodotRayCast.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRayCast.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotRayCast where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotRayCast2D.hs b/src/Godot/Core/GodotRayCast2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRayCast2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotRayCast2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotRayShape.hs b/src/Godot/Core/GodotRayShape.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRayShape.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotRayShape where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotRayShape2D.hs b/src/Godot/Core/GodotRayShape2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRayShape2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotRayShape2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotRectangleShape2D.hs b/src/Godot/Core/GodotRectangleShape2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRectangleShape2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotRectangleShape2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotReference.hs b/src/Godot/Core/GodotReference.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotReference.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotReference where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotReferenceRect.hs b/src/Godot/Core/GodotReferenceRect.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotReferenceRect.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotReferenceRect where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotReflectionProbe.hs b/src/Godot/Core/GodotReflectionProbe.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotReflectionProbe.hs
@@ -0,0 +1,16 @@
+module Godot.Core.GodotReflectionProbe where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern UPDATE_ALWAYS :: Int
+
+pattern UPDATE_ALWAYS = 1
+
+pattern UPDATE_ONCE :: Int
+
+pattern UPDATE_ONCE = 0
diff --git a/src/Godot/Core/GodotRegEx.hs b/src/Godot/Core/GodotRegEx.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRegEx.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotRegEx where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotRegExMatch.hs b/src/Godot/Core/GodotRegExMatch.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRegExMatch.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotRegExMatch where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotRemoteTransform.hs b/src/Godot/Core/GodotRemoteTransform.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRemoteTransform.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotRemoteTransform where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotRemoteTransform2D.hs b/src/Godot/Core/GodotRemoteTransform2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRemoteTransform2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotRemoteTransform2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotResource.hs b/src/Godot/Core/GodotResource.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotResource.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotResource where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+changed :: Signal GodotResource
+changed = Signal "changed"
diff --git a/src/Godot/Core/GodotResourceImporter.hs b/src/Godot/Core/GodotResourceImporter.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotResourceImporter.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotResourceImporter where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotResourceImporterOGGVorbis.hs b/src/Godot/Core/GodotResourceImporterOGGVorbis.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotResourceImporterOGGVorbis.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotResourceImporterOGGVorbis where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotResourceImporterTheora.hs b/src/Godot/Core/GodotResourceImporterTheora.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotResourceImporterTheora.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotResourceImporterTheora where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotResourceImporterWebm.hs b/src/Godot/Core/GodotResourceImporterWebm.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotResourceImporterWebm.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotResourceImporterWebm where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotResourceInteractiveLoader.hs b/src/Godot/Core/GodotResourceInteractiveLoader.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotResourceInteractiveLoader.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotResourceInteractiveLoader where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotResourcePreloader.hs b/src/Godot/Core/GodotResourcePreloader.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotResourcePreloader.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotResourcePreloader where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotRichTextLabel.hs b/src/Godot/Core/GodotRichTextLabel.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRichTextLabel.hs
@@ -0,0 +1,97 @@
+module Godot.Core.GodotRichTextLabel where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ITEM_UNDERLINE :: Int
+
+pattern ITEM_UNDERLINE = 6
+
+pattern ITEM_META :: Int
+
+pattern ITEM_META = 12
+
+pattern ITEM_ALIGN :: Int
+
+pattern ITEM_ALIGN = 8
+
+pattern ITEM_FRAME :: Int
+
+pattern ITEM_FRAME = 0
+
+pattern ALIGN_RIGHT :: Int
+
+pattern ALIGN_RIGHT = 2
+
+pattern ALIGN_FILL :: Int
+
+pattern ALIGN_FILL = 3
+
+pattern ITEM_STRIKETHROUGH :: Int
+
+pattern ITEM_STRIKETHROUGH = 7
+
+pattern ITEM_FONT :: Int
+
+pattern ITEM_FONT = 4
+
+pattern ITEM_TABLE :: Int
+
+pattern ITEM_TABLE = 11
+
+pattern ITEM_COLOR :: Int
+
+pattern ITEM_COLOR = 5
+
+pattern ITEM_TEXT :: Int
+
+pattern ITEM_TEXT = 1
+
+pattern ITEM_IMAGE :: Int
+
+pattern ITEM_IMAGE = 2
+
+pattern LIST_NUMBERS :: Int
+
+pattern LIST_NUMBERS = 0
+
+pattern LIST_LETTERS :: Int
+
+pattern LIST_LETTERS = 1
+
+pattern ITEM_LIST :: Int
+
+pattern ITEM_LIST = 10
+
+pattern ITEM_NEWLINE :: Int
+
+pattern ITEM_NEWLINE = 3
+
+pattern ITEM_INDENT :: Int
+
+pattern ITEM_INDENT = 9
+
+pattern LIST_DOTS :: Int
+
+pattern LIST_DOTS = 2
+
+pattern ALIGN_LEFT :: Int
+
+pattern ALIGN_LEFT = 0
+
+pattern ALIGN_CENTER :: Int
+
+pattern ALIGN_CENTER = 1
+
+meta_clicked :: Signal GodotRichTextLabel
+meta_clicked = Signal "meta_clicked"
+
+meta_hover_started :: Signal GodotRichTextLabel
+meta_hover_started = Signal "meta_hover_started"
+
+meta_hover_ended :: Signal GodotRichTextLabel
+meta_hover_ended = Signal "meta_hover_ended"
diff --git a/src/Godot/Core/GodotRigidBody.hs b/src/Godot/Core/GodotRigidBody.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRigidBody.hs
@@ -0,0 +1,39 @@
+module Godot.Core.GodotRigidBody where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MODE_STATIC :: Int
+
+pattern MODE_STATIC = 1
+
+pattern MODE_KINEMATIC :: Int
+
+pattern MODE_KINEMATIC = 3
+
+pattern MODE_RIGID :: Int
+
+pattern MODE_RIGID = 0
+
+pattern MODE_CHARACTER :: Int
+
+pattern MODE_CHARACTER = 2
+
+body_entered :: Signal GodotRigidBody
+body_entered = Signal "body_entered"
+
+body_shape_entered :: Signal GodotRigidBody
+body_shape_entered = Signal "body_shape_entered"
+
+sleeping_state_changed :: Signal GodotRigidBody
+sleeping_state_changed = Signal "sleeping_state_changed"
+
+body_exited :: Signal GodotRigidBody
+body_exited = Signal "body_exited"
+
+body_shape_exited :: Signal GodotRigidBody
+body_shape_exited = Signal "body_shape_exited"
diff --git a/src/Godot/Core/GodotRigidBody2D.hs b/src/Godot/Core/GodotRigidBody2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRigidBody2D.hs
@@ -0,0 +1,51 @@
+module Godot.Core.GodotRigidBody2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MODE_STATIC :: Int
+
+pattern MODE_STATIC = 1
+
+pattern CCD_MODE_DISABLED :: Int
+
+pattern CCD_MODE_DISABLED = 0
+
+pattern CCD_MODE_CAST_RAY :: Int
+
+pattern CCD_MODE_CAST_RAY = 1
+
+pattern MODE_KINEMATIC :: Int
+
+pattern MODE_KINEMATIC = 3
+
+pattern CCD_MODE_CAST_SHAPE :: Int
+
+pattern CCD_MODE_CAST_SHAPE = 2
+
+pattern MODE_RIGID :: Int
+
+pattern MODE_RIGID = 0
+
+pattern MODE_CHARACTER :: Int
+
+pattern MODE_CHARACTER = 2
+
+body_entered :: Signal GodotRigidBody2D
+body_entered = Signal "body_entered"
+
+body_shape_entered :: Signal GodotRigidBody2D
+body_shape_entered = Signal "body_shape_entered"
+
+sleeping_state_changed :: Signal GodotRigidBody2D
+sleeping_state_changed = Signal "sleeping_state_changed"
+
+body_exited :: Signal GodotRigidBody2D
+body_exited = Signal "body_exited"
+
+body_shape_exited :: Signal GodotRigidBody2D
+body_shape_exited = Signal "body_shape_exited"
diff --git a/src/Godot/Core/GodotRootMotionView.hs b/src/Godot/Core/GodotRootMotionView.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotRootMotionView.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotRootMotionView where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSceneState.hs b/src/Godot/Core/GodotSceneState.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSceneState.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotSceneState where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern GEN_EDIT_STATE_DISABLED :: Int
+
+pattern GEN_EDIT_STATE_DISABLED = 0
+
+pattern GEN_EDIT_STATE_MAIN :: Int
+
+pattern GEN_EDIT_STATE_MAIN = 2
+
+pattern GEN_EDIT_STATE_INSTANCE :: Int
+
+pattern GEN_EDIT_STATE_INSTANCE = 1
diff --git a/src/Godot/Core/GodotSceneTree.hs b/src/Godot/Core/GodotSceneTree.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSceneTree.hs
@@ -0,0 +1,96 @@
+module Godot.Core.GodotSceneTree where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern STRETCH_ASPECT_KEEP :: Int
+
+pattern STRETCH_ASPECT_KEEP = 1
+
+pattern STRETCH_ASPECT_IGNORE :: Int
+
+pattern STRETCH_ASPECT_IGNORE = 0
+
+pattern GROUP_CALL_REALTIME :: Int
+
+pattern GROUP_CALL_REALTIME = 2
+
+pattern GROUP_CALL_UNIQUE :: Int
+
+pattern GROUP_CALL_UNIQUE = 4
+
+pattern STRETCH_MODE_DISABLED :: Int
+
+pattern STRETCH_MODE_DISABLED = 0
+
+pattern STRETCH_ASPECT_KEEP_HEIGHT :: Int
+
+pattern STRETCH_ASPECT_KEEP_HEIGHT = 3
+
+pattern STRETCH_MODE_2D :: Int
+
+pattern STRETCH_MODE_2D = 1
+
+pattern GROUP_CALL_REVERSE :: Int
+
+pattern GROUP_CALL_REVERSE = 1
+
+pattern STRETCH_ASPECT_KEEP_WIDTH :: Int
+
+pattern STRETCH_ASPECT_KEEP_WIDTH = 2
+
+pattern STRETCH_MODE_VIEWPORT :: Int
+
+pattern STRETCH_MODE_VIEWPORT = 2
+
+pattern GROUP_CALL_DEFAULT :: Int
+
+pattern GROUP_CALL_DEFAULT = 0
+
+pattern STRETCH_ASPECT_EXPAND :: Int
+
+pattern STRETCH_ASPECT_EXPAND = 4
+
+connected_to_server :: Signal GodotSceneTree
+connected_to_server = Signal "connected_to_server"
+
+node_configuration_warning_changed :: Signal GodotSceneTree
+node_configuration_warning_changed
+  = Signal "node_configuration_warning_changed"
+
+connection_failed :: Signal GodotSceneTree
+connection_failed = Signal "connection_failed"
+
+physics_frame :: Signal GodotSceneTree
+physics_frame = Signal "physics_frame"
+
+screen_resized :: Signal GodotSceneTree
+screen_resized = Signal "screen_resized"
+
+network_peer_disconnected :: Signal GodotSceneTree
+network_peer_disconnected = Signal "network_peer_disconnected"
+
+network_peer_connected :: Signal GodotSceneTree
+network_peer_connected = Signal "network_peer_connected"
+
+node_removed :: Signal GodotSceneTree
+node_removed = Signal "node_removed"
+
+node_added :: Signal GodotSceneTree
+node_added = Signal "node_added"
+
+files_dropped :: Signal GodotSceneTree
+files_dropped = Signal "files_dropped"
+
+idle_frame :: Signal GodotSceneTree
+idle_frame = Signal "idle_frame"
+
+server_disconnected :: Signal GodotSceneTree
+server_disconnected = Signal "server_disconnected"
+
+tree_changed :: Signal GodotSceneTree
+tree_changed = Signal "tree_changed"
diff --git a/src/Godot/Core/GodotSceneTreeTimer.hs b/src/Godot/Core/GodotSceneTreeTimer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSceneTreeTimer.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotSceneTreeTimer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+timeout :: Signal GodotSceneTreeTimer
+timeout = Signal "timeout"
diff --git a/src/Godot/Core/GodotScript.hs b/src/Godot/Core/GodotScript.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotScript.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotScript where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotScrollBar.hs b/src/Godot/Core/GodotScrollBar.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotScrollBar.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotScrollBar where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+scrolling :: Signal GodotScrollBar
+scrolling = Signal "scrolling"
diff --git a/src/Godot/Core/GodotScrollContainer.hs b/src/Godot/Core/GodotScrollContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotScrollContainer.hs
@@ -0,0 +1,14 @@
+module Godot.Core.GodotScrollContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+scroll_started :: Signal GodotScrollContainer
+scroll_started = Signal "scroll_started"
+
+scroll_ended :: Signal GodotScrollContainer
+scroll_ended = Signal "scroll_ended"
diff --git a/src/Godot/Core/GodotSegmentShape2D.hs b/src/Godot/Core/GodotSegmentShape2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSegmentShape2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSegmentShape2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSeparator.hs b/src/Godot/Core/GodotSeparator.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSeparator.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSeparator where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotShader.hs b/src/Godot/Core/GodotShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotShader.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotShader where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MODE_CANVAS_ITEM :: Int
+
+pattern MODE_CANVAS_ITEM = 1
+
+pattern MODE_PARTICLES :: Int
+
+pattern MODE_PARTICLES = 2
+
+pattern MODE_SPATIAL :: Int
+
+pattern MODE_SPATIAL = 0
diff --git a/src/Godot/Core/GodotShaderMaterial.hs b/src/Godot/Core/GodotShaderMaterial.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotShaderMaterial.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotShaderMaterial where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotShape.hs b/src/Godot/Core/GodotShape.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotShape.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotShape where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotShape2D.hs b/src/Godot/Core/GodotShape2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotShape2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotShape2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotShortCut.hs b/src/Godot/Core/GodotShortCut.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotShortCut.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotShortCut where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSkeleton.hs b/src/Godot/Core/GodotSkeleton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSkeleton.hs
@@ -0,0 +1,12 @@
+module Godot.Core.GodotSkeleton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern NOTIFICATION_UPDATE_SKELETON :: Int
+
+pattern NOTIFICATION_UPDATE_SKELETON = 50
diff --git a/src/Godot/Core/GodotSkeleton2D.hs b/src/Godot/Core/GodotSkeleton2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSkeleton2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSkeleton2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSkeletonIK.hs b/src/Godot/Core/GodotSkeletonIK.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSkeletonIK.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSkeletonIK where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSky.hs b/src/Godot/Core/GodotSky.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSky.hs
@@ -0,0 +1,40 @@
+module Godot.Core.GodotSky where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern RADIANCE_SIZE_128 :: Int
+
+pattern RADIANCE_SIZE_128 = 2
+
+pattern RADIANCE_SIZE_2048 :: Int
+
+pattern RADIANCE_SIZE_2048 = 6
+
+pattern RADIANCE_SIZE_512 :: Int
+
+pattern RADIANCE_SIZE_512 = 4
+
+pattern RADIANCE_SIZE_1024 :: Int
+
+pattern RADIANCE_SIZE_1024 = 5
+
+pattern RADIANCE_SIZE_64 :: Int
+
+pattern RADIANCE_SIZE_64 = 1
+
+pattern RADIANCE_SIZE_32 :: Int
+
+pattern RADIANCE_SIZE_32 = 0
+
+pattern RADIANCE_SIZE_256 :: Int
+
+pattern RADIANCE_SIZE_256 = 3
+
+pattern RADIANCE_SIZE_MAX :: Int
+
+pattern RADIANCE_SIZE_MAX = 7
diff --git a/src/Godot/Core/GodotSlider.hs b/src/Godot/Core/GodotSlider.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSlider.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSlider where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSliderJoint.hs b/src/Godot/Core/GodotSliderJoint.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSliderJoint.hs
@@ -0,0 +1,100 @@
+module Godot.Core.GodotSliderJoint where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern PARAM_ANGULAR_LIMIT_LOWER :: Int
+
+pattern PARAM_ANGULAR_LIMIT_LOWER = 12
+
+pattern PARAM_LINEAR_ORTHOGONAL_RESTITUTION :: Int
+
+pattern PARAM_LINEAR_ORTHOGONAL_RESTITUTION = 9
+
+pattern PARAM_ANGULAR_MOTION_DAMPING :: Int
+
+pattern PARAM_ANGULAR_MOTION_DAMPING = 18
+
+pattern PARAM_LINEAR_LIMIT_RESTITUTION :: Int
+
+pattern PARAM_LINEAR_LIMIT_RESTITUTION = 3
+
+pattern PARAM_LINEAR_MOTION_RESTITUTION :: Int
+
+pattern PARAM_LINEAR_MOTION_RESTITUTION = 6
+
+pattern PARAM_ANGULAR_ORTHOGONAL_DAMPING :: Int
+
+pattern PARAM_ANGULAR_ORTHOGONAL_DAMPING = 21
+
+pattern PARAM_ANGULAR_ORTHOGONAL_SOFTNESS :: Int
+
+pattern PARAM_ANGULAR_ORTHOGONAL_SOFTNESS = 19
+
+pattern PARAM_LINEAR_ORTHOGONAL_SOFTNESS :: Int
+
+pattern PARAM_LINEAR_ORTHOGONAL_SOFTNESS = 8
+
+pattern PARAM_LINEAR_LIMIT_SOFTNESS :: Int
+
+pattern PARAM_LINEAR_LIMIT_SOFTNESS = 2
+
+pattern PARAM_ANGULAR_LIMIT_RESTITUTION :: Int
+
+pattern PARAM_ANGULAR_LIMIT_RESTITUTION = 14
+
+pattern PARAM_LINEAR_LIMIT_LOWER :: Int
+
+pattern PARAM_LINEAR_LIMIT_LOWER = 1
+
+pattern PARAM_LINEAR_MOTION_SOFTNESS :: Int
+
+pattern PARAM_LINEAR_MOTION_SOFTNESS = 5
+
+pattern PARAM_MAX :: Int
+
+pattern PARAM_MAX = 22
+
+pattern PARAM_ANGULAR_LIMIT_DAMPING :: Int
+
+pattern PARAM_ANGULAR_LIMIT_DAMPING = 15
+
+pattern PARAM_ANGULAR_LIMIT_SOFTNESS :: Int
+
+pattern PARAM_ANGULAR_LIMIT_SOFTNESS = 13
+
+pattern PARAM_LINEAR_LIMIT_UPPER :: Int
+
+pattern PARAM_LINEAR_LIMIT_UPPER = 0
+
+pattern PARAM_ANGULAR_LIMIT_UPPER :: Int
+
+pattern PARAM_ANGULAR_LIMIT_UPPER = 11
+
+pattern PARAM_LINEAR_LIMIT_DAMPING :: Int
+
+pattern PARAM_LINEAR_LIMIT_DAMPING = 4
+
+pattern PARAM_ANGULAR_MOTION_RESTITUTION :: Int
+
+pattern PARAM_ANGULAR_MOTION_RESTITUTION = 17
+
+pattern PARAM_LINEAR_ORTHOGONAL_DAMPING :: Int
+
+pattern PARAM_LINEAR_ORTHOGONAL_DAMPING = 10
+
+pattern PARAM_ANGULAR_ORTHOGONAL_RESTITUTION :: Int
+
+pattern PARAM_ANGULAR_ORTHOGONAL_RESTITUTION = 20
+
+pattern PARAM_LINEAR_MOTION_DAMPING :: Int
+
+pattern PARAM_LINEAR_MOTION_DAMPING = 7
+
+pattern PARAM_ANGULAR_MOTION_SOFTNESS :: Int
+
+pattern PARAM_ANGULAR_MOTION_SOFTNESS = 16
diff --git a/src/Godot/Core/GodotSoftBody.hs b/src/Godot/Core/GodotSoftBody.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSoftBody.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSoftBody where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSpatial.hs b/src/Godot/Core/GodotSpatial.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSpatial.hs
@@ -0,0 +1,27 @@
+module Godot.Core.GodotSpatial where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern NOTIFICATION_ENTER_WORLD :: Int
+
+pattern NOTIFICATION_ENTER_WORLD = 41
+
+pattern NOTIFICATION_EXIT_WORLD :: Int
+
+pattern NOTIFICATION_EXIT_WORLD = 42
+
+pattern NOTIFICATION_TRANSFORM_CHANGED :: Int
+
+pattern NOTIFICATION_TRANSFORM_CHANGED = 29
+
+pattern NOTIFICATION_VISIBILITY_CHANGED :: Int
+
+pattern NOTIFICATION_VISIBILITY_CHANGED = 43
+
+visibility_changed :: Signal GodotSpatial
+visibility_changed = Signal "visibility_changed"
diff --git a/src/Godot/Core/GodotSpatialGizmo.hs b/src/Godot/Core/GodotSpatialGizmo.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSpatialGizmo.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSpatialGizmo where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSpatialMaterial.hs b/src/Godot/Core/GodotSpatialMaterial.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSpatialMaterial.hs
@@ -0,0 +1,356 @@
+module Godot.Core.GodotSpatialMaterial where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern DIFFUSE_BURLEY :: Int
+
+pattern DIFFUSE_BURLEY = 0
+
+pattern DEPTH_DRAW_ALWAYS :: Int
+
+pattern DEPTH_DRAW_ALWAYS = 1
+
+pattern FLAG_DISABLE_DEPTH_TEST :: Int
+
+pattern FLAG_DISABLE_DEPTH_TEST = 2
+
+pattern TEXTURE_MAX :: Int
+
+pattern TEXTURE_MAX = 16
+
+pattern DISTANCE_FADE_PIXEL_DITHER :: Int
+
+pattern DISTANCE_FADE_PIXEL_DITHER = 2
+
+pattern FLAG_DONT_RECEIVE_SHADOWS :: Int
+
+pattern FLAG_DONT_RECEIVE_SHADOWS = 15
+
+pattern TEXTURE_METALLIC :: Int
+
+pattern TEXTURE_METALLIC = 1
+
+pattern FEATURE_MAX :: Int
+
+pattern FEATURE_MAX = 12
+
+pattern TEXTURE_DETAIL_ALBEDO :: Int
+
+pattern TEXTURE_DETAIL_ALBEDO = 14
+
+pattern TEXTURE_CHANNEL_RED :: Int
+
+pattern TEXTURE_CHANNEL_RED = 0
+
+pattern SPECULAR_TOON :: Int
+
+pattern SPECULAR_TOON = 3
+
+pattern FEATURE_EMISSION :: Int
+
+pattern FEATURE_EMISSION = 1
+
+pattern TEXTURE_CHANNEL_BLUE :: Int
+
+pattern TEXTURE_CHANNEL_BLUE = 2
+
+pattern TEXTURE_AMBIENT_OCCLUSION :: Int
+
+pattern TEXTURE_AMBIENT_OCCLUSION = 8
+
+pattern TEXTURE_DETAIL_MASK :: Int
+
+pattern TEXTURE_DETAIL_MASK = 13
+
+pattern FEATURE_DETAIL :: Int
+
+pattern FEATURE_DETAIL = 11
+
+pattern SPECULAR_SCHLICK_GGX :: Int
+
+pattern SPECULAR_SCHLICK_GGX = 0
+
+pattern FEATURE_SUBSURACE_SCATTERING :: Int
+
+pattern FEATURE_SUBSURACE_SCATTERING = 8
+
+pattern FEATURE_DEPTH_MAPPING :: Int
+
+pattern FEATURE_DEPTH_MAPPING = 7
+
+pattern TEXTURE_REFRACTION :: Int
+
+pattern TEXTURE_REFRACTION = 12
+
+pattern FEATURE_TRANSPARENT :: Int
+
+pattern FEATURE_TRANSPARENT = 0
+
+pattern FEATURE_TRANSMISSION :: Int
+
+pattern FEATURE_TRANSMISSION = 9
+
+pattern FLAG_TRIPLANAR_USE_WORLD :: Int
+
+pattern FLAG_TRIPLANAR_USE_WORLD = 10
+
+pattern DEPTH_DRAW_ALPHA_OPAQUE_PREPASS :: Int
+
+pattern DEPTH_DRAW_ALPHA_OPAQUE_PREPASS = 3
+
+pattern FLAG_USE_ALPHA_SCISSOR :: Int
+
+pattern FLAG_USE_ALPHA_SCISSOR = 13
+
+pattern DIFFUSE_LAMBERT :: Int
+
+pattern DIFFUSE_LAMBERT = 1
+
+pattern DETAIL_UV_2 :: Int
+
+pattern DETAIL_UV_2 = 1
+
+pattern DIFFUSE_LAMBERT_WRAP :: Int
+
+pattern DIFFUSE_LAMBERT_WRAP = 2
+
+pattern BLEND_MODE_ADD :: Int
+
+pattern BLEND_MODE_ADD = 1
+
+pattern BILLBOARD_ENABLED :: Int
+
+pattern BILLBOARD_ENABLED = 1
+
+pattern TEXTURE_NORMAL :: Int
+
+pattern TEXTURE_NORMAL = 4
+
+pattern FEATURE_NORMAL_MAPPING :: Int
+
+pattern FEATURE_NORMAL_MAPPING = 2
+
+pattern TEXTURE_TRANSMISSION :: Int
+
+pattern TEXTURE_TRANSMISSION = 11
+
+pattern FLAG_ALBEDO_FROM_VERTEX_COLOR :: Int
+
+pattern FLAG_ALBEDO_FROM_VERTEX_COLOR = 3
+
+pattern FEATURE_REFRACTION :: Int
+
+pattern FEATURE_REFRACTION = 10
+
+pattern BLEND_MODE_MIX :: Int
+
+pattern BLEND_MODE_MIX = 0
+
+pattern BILLBOARD_FIXED_Y :: Int
+
+pattern BILLBOARD_FIXED_Y = 2
+
+pattern TEXTURE_FLOWMAP :: Int
+
+pattern TEXTURE_FLOWMAP = 7
+
+pattern TEXTURE_RIM :: Int
+
+pattern TEXTURE_RIM = 5
+
+pattern FEATURE_AMBIENT_OCCLUSION :: Int
+
+pattern FEATURE_AMBIENT_OCCLUSION = 6
+
+pattern DISTANCE_FADE_OBJECT_DITHER :: Int
+
+pattern DISTANCE_FADE_OBJECT_DITHER = 3
+
+pattern FLAG_BILLBOARD_KEEP_SCALE :: Int
+
+pattern FLAG_BILLBOARD_KEEP_SCALE = 7
+
+pattern DEPTH_DRAW_OPAQUE_ONLY :: Int
+
+pattern DEPTH_DRAW_OPAQUE_ONLY = 0
+
+pattern FLAG_USE_POINT_SIZE :: Int
+
+pattern FLAG_USE_POINT_SIZE = 5
+
+pattern CULL_DISABLED :: Int
+
+pattern CULL_DISABLED = 2
+
+pattern FEATURE_ANISOTROPY :: Int
+
+pattern FEATURE_ANISOTROPY = 5
+
+pattern TEXTURE_ROUGHNESS :: Int
+
+pattern TEXTURE_ROUGHNESS = 2
+
+pattern EMISSION_OP_ADD :: Int
+
+pattern EMISSION_OP_ADD = 0
+
+pattern FLAG_MAX :: Int
+
+pattern FLAG_MAX = 18
+
+pattern FLAG_FIXED_SIZE :: Int
+
+pattern FLAG_FIXED_SIZE = 6
+
+pattern FLAG_UNSHADED :: Int
+
+pattern FLAG_UNSHADED = 0
+
+pattern FLAG_ENSURE_CORRECT_NORMALS :: Int
+
+pattern FLAG_ENSURE_CORRECT_NORMALS = 16
+
+pattern TEXTURE_CHANNEL_GREEN :: Int
+
+pattern TEXTURE_CHANNEL_GREEN = 1
+
+pattern SPECULAR_BLINN :: Int
+
+pattern SPECULAR_BLINN = 1
+
+pattern CULL_BACK :: Int
+
+pattern CULL_BACK = 0
+
+pattern EMISSION_OP_MULTIPLY :: Int
+
+pattern EMISSION_OP_MULTIPLY = 1
+
+pattern FLAG_SRGB_VERTEX_COLOR :: Int
+
+pattern FLAG_SRGB_VERTEX_COLOR = 4
+
+pattern FLAG_EMISSION_ON_UV2 :: Int
+
+pattern FLAG_EMISSION_ON_UV2 = 12
+
+pattern FLAG_AO_ON_UV2 :: Int
+
+pattern FLAG_AO_ON_UV2 = 11
+
+pattern TEXTURE_DEPTH :: Int
+
+pattern TEXTURE_DEPTH = 9
+
+pattern DIFFUSE_OREN_NAYAR :: Int
+
+pattern DIFFUSE_OREN_NAYAR = 3
+
+pattern FLAG_UV1_USE_TRIPLANAR :: Int
+
+pattern FLAG_UV1_USE_TRIPLANAR = 8
+
+pattern DEPTH_DRAW_DISABLED :: Int
+
+pattern DEPTH_DRAW_DISABLED = 2
+
+pattern TEXTURE_DETAIL_NORMAL :: Int
+
+pattern TEXTURE_DETAIL_NORMAL = 15
+
+pattern FEATURE_RIM :: Int
+
+pattern FEATURE_RIM = 3
+
+pattern DISTANCE_FADE_DISABLED :: Int
+
+pattern DISTANCE_FADE_DISABLED = 0
+
+pattern SPECULAR_DISABLED :: Int
+
+pattern SPECULAR_DISABLED = 4
+
+pattern CULL_FRONT :: Int
+
+pattern CULL_FRONT = 1
+
+pattern TEXTURE_SUBSURFACE_SCATTERING :: Int
+
+pattern TEXTURE_SUBSURFACE_SCATTERING = 10
+
+pattern TEXTURE_CLEARCOAT :: Int
+
+pattern TEXTURE_CLEARCOAT = 6
+
+pattern TEXTURE_CHANNEL_ALPHA :: Int
+
+pattern TEXTURE_CHANNEL_ALPHA = 3
+
+pattern FEATURE_CLEARCOAT :: Int
+
+pattern FEATURE_CLEARCOAT = 4
+
+pattern FLAG_ALBEDO_TEXTURE_FORCE_SRGB :: Int
+
+pattern FLAG_ALBEDO_TEXTURE_FORCE_SRGB = 14
+
+pattern DIFFUSE_TOON :: Int
+
+pattern DIFFUSE_TOON = 4
+
+pattern DETAIL_UV_1 :: Int
+
+pattern DETAIL_UV_1 = 0
+
+pattern BILLBOARD_DISABLED :: Int
+
+pattern BILLBOARD_DISABLED = 0
+
+pattern BLEND_MODE_MUL :: Int
+
+pattern BLEND_MODE_MUL = 3
+
+pattern FLAG_USE_VERTEX_LIGHTING :: Int
+
+pattern FLAG_USE_VERTEX_LIGHTING = 1
+
+pattern FLAG_UV2_USE_TRIPLANAR :: Int
+
+pattern FLAG_UV2_USE_TRIPLANAR = 9
+
+pattern BLEND_MODE_SUB :: Int
+
+pattern BLEND_MODE_SUB = 2
+
+pattern SPECULAR_PHONG :: Int
+
+pattern SPECULAR_PHONG = 2
+
+pattern DISTANCE_FADE_PIXEL_ALPHA :: Int
+
+pattern DISTANCE_FADE_PIXEL_ALPHA = 1
+
+pattern FLAG_DISABLE_AMBIENT_LIGHT :: Int
+
+pattern FLAG_DISABLE_AMBIENT_LIGHT = 17
+
+pattern BILLBOARD_PARTICLES :: Int
+
+pattern BILLBOARD_PARTICLES = 3
+
+pattern TEXTURE_EMISSION :: Int
+
+pattern TEXTURE_EMISSION = 3
+
+pattern TEXTURE_CHANNEL_GRAYSCALE :: Int
+
+pattern TEXTURE_CHANNEL_GRAYSCALE = 4
+
+pattern TEXTURE_ALBEDO :: Int
+
+pattern TEXTURE_ALBEDO = 0
diff --git a/src/Godot/Core/GodotSpatialVelocityTracker.hs b/src/Godot/Core/GodotSpatialVelocityTracker.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSpatialVelocityTracker.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSpatialVelocityTracker where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSphereMesh.hs b/src/Godot/Core/GodotSphereMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSphereMesh.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSphereMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSphereShape.hs b/src/Godot/Core/GodotSphereShape.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSphereShape.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSphereShape where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSpinBox.hs b/src/Godot/Core/GodotSpinBox.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSpinBox.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSpinBox where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSplitContainer.hs b/src/Godot/Core/GodotSplitContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSplitContainer.hs
@@ -0,0 +1,23 @@
+module Godot.Core.GodotSplitContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern DRAGGER_HIDDEN :: Int
+
+pattern DRAGGER_HIDDEN = 1
+
+pattern DRAGGER_HIDDEN_COLLAPSED :: Int
+
+pattern DRAGGER_HIDDEN_COLLAPSED = 2
+
+pattern DRAGGER_VISIBLE :: Int
+
+pattern DRAGGER_VISIBLE = 0
+
+dragged :: Signal GodotSplitContainer
+dragged = Signal "dragged"
diff --git a/src/Godot/Core/GodotSpotLight.hs b/src/Godot/Core/GodotSpotLight.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSpotLight.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSpotLight where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSpringArm.hs b/src/Godot/Core/GodotSpringArm.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSpringArm.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSpringArm where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotSprite.hs b/src/Godot/Core/GodotSprite.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSprite.hs
@@ -0,0 +1,14 @@
+module Godot.Core.GodotSprite where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+frame_changed :: Signal GodotSprite
+frame_changed = Signal "frame_changed"
+
+texture_changed :: Signal GodotSprite
+texture_changed = Signal "texture_changed"
diff --git a/src/Godot/Core/GodotSprite3D.hs b/src/Godot/Core/GodotSprite3D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSprite3D.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotSprite3D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+frame_changed :: Signal GodotSprite3D
+frame_changed = Signal "frame_changed"
diff --git a/src/Godot/Core/GodotSpriteBase3D.hs b/src/Godot/Core/GodotSpriteBase3D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSpriteBase3D.hs
@@ -0,0 +1,36 @@
+module Godot.Core.GodotSpriteBase3D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FLAG_SHADED :: Int
+
+pattern FLAG_SHADED = 1
+
+pattern ALPHA_CUT_OPAQUE_PREPASS :: Int
+
+pattern ALPHA_CUT_OPAQUE_PREPASS = 2
+
+pattern FLAG_DOUBLE_SIDED :: Int
+
+pattern FLAG_DOUBLE_SIDED = 2
+
+pattern ALPHA_CUT_DISABLED :: Int
+
+pattern ALPHA_CUT_DISABLED = 0
+
+pattern ALPHA_CUT_DISCARD :: Int
+
+pattern ALPHA_CUT_DISCARD = 1
+
+pattern FLAG_MAX :: Int
+
+pattern FLAG_MAX = 3
+
+pattern FLAG_TRANSPARENT :: Int
+
+pattern FLAG_TRANSPARENT = 0
diff --git a/src/Godot/Core/GodotSpriteFrames.hs b/src/Godot/Core/GodotSpriteFrames.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSpriteFrames.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSpriteFrames where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotStaticBody.hs b/src/Godot/Core/GodotStaticBody.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStaticBody.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotStaticBody where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotStaticBody2D.hs b/src/Godot/Core/GodotStaticBody2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStaticBody2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotStaticBody2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotStreamPeer.hs b/src/Godot/Core/GodotStreamPeer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStreamPeer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotStreamPeer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotStreamPeerBuffer.hs b/src/Godot/Core/GodotStreamPeerBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStreamPeerBuffer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotStreamPeerBuffer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotStreamPeerGDNative.hs b/src/Godot/Core/GodotStreamPeerGDNative.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStreamPeerGDNative.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotStreamPeerGDNative where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotStreamPeerSSL.hs b/src/Godot/Core/GodotStreamPeerSSL.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStreamPeerSSL.hs
@@ -0,0 +1,28 @@
+module Godot.Core.GodotStreamPeerSSL where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern STATUS_CONNECTED :: Int
+
+pattern STATUS_CONNECTED = 2
+
+pattern STATUS_ERROR :: Int
+
+pattern STATUS_ERROR = 3
+
+pattern STATUS_DISCONNECTED :: Int
+
+pattern STATUS_DISCONNECTED = 0
+
+pattern STATUS_ERROR_HOSTNAME_MISMATCH :: Int
+
+pattern STATUS_ERROR_HOSTNAME_MISMATCH = 4
+
+pattern STATUS_HANDSHAKING :: Int
+
+pattern STATUS_HANDSHAKING = 1
diff --git a/src/Godot/Core/GodotStreamPeerTCP.hs b/src/Godot/Core/GodotStreamPeerTCP.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStreamPeerTCP.hs
@@ -0,0 +1,24 @@
+module Godot.Core.GodotStreamPeerTCP where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern STATUS_CONNECTED :: Int
+
+pattern STATUS_CONNECTED = 2
+
+pattern STATUS_CONNECTING :: Int
+
+pattern STATUS_CONNECTING = 1
+
+pattern STATUS_ERROR :: Int
+
+pattern STATUS_ERROR = 3
+
+pattern STATUS_NONE :: Int
+
+pattern STATUS_NONE = 0
diff --git a/src/Godot/Core/GodotStreamTexture.hs b/src/Godot/Core/GodotStreamTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStreamTexture.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotStreamTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotStyleBox.hs b/src/Godot/Core/GodotStyleBox.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStyleBox.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotStyleBox where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotStyleBoxEmpty.hs b/src/Godot/Core/GodotStyleBoxEmpty.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStyleBoxEmpty.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotStyleBoxEmpty where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotStyleBoxFlat.hs b/src/Godot/Core/GodotStyleBoxFlat.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStyleBoxFlat.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotStyleBoxFlat where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotStyleBoxLine.hs b/src/Godot/Core/GodotStyleBoxLine.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStyleBoxLine.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotStyleBoxLine where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotStyleBoxTexture.hs b/src/Godot/Core/GodotStyleBoxTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotStyleBoxTexture.hs
@@ -0,0 +1,23 @@
+module Godot.Core.GodotStyleBoxTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern AXIS_STRETCH_MODE_TILE_FIT :: Int
+
+pattern AXIS_STRETCH_MODE_TILE_FIT = 2
+
+pattern AXIS_STRETCH_MODE_TILE :: Int
+
+pattern AXIS_STRETCH_MODE_TILE = 1
+
+pattern AXIS_STRETCH_MODE_STRETCH :: Int
+
+pattern AXIS_STRETCH_MODE_STRETCH = 0
+
+texture_changed :: Signal GodotStyleBoxTexture
+texture_changed = Signal "texture_changed"
diff --git a/src/Godot/Core/GodotSurfaceTool.hs b/src/Godot/Core/GodotSurfaceTool.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotSurfaceTool.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotSurfaceTool where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotTCP_Server.hs b/src/Godot/Core/GodotTCP_Server.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTCP_Server.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotTCP_Server where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotTabContainer.hs b/src/Godot/Core/GodotTabContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTabContainer.hs
@@ -0,0 +1,29 @@
+module Godot.Core.GodotTabContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ALIGN_RIGHT :: Int
+
+pattern ALIGN_RIGHT = 2
+
+pattern ALIGN_LEFT :: Int
+
+pattern ALIGN_LEFT = 0
+
+pattern ALIGN_CENTER :: Int
+
+pattern ALIGN_CENTER = 1
+
+pre_popup_pressed :: Signal GodotTabContainer
+pre_popup_pressed = Signal "pre_popup_pressed"
+
+tab_selected :: Signal GodotTabContainer
+tab_selected = Signal "tab_selected"
+
+tab_changed :: Signal GodotTabContainer
+tab_changed = Signal "tab_changed"
diff --git a/src/Godot/Core/GodotTabs.hs b/src/Godot/Core/GodotTabs.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTabs.hs
@@ -0,0 +1,59 @@
+module Godot.Core.GodotTabs where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ALIGN_RIGHT :: Int
+
+pattern ALIGN_RIGHT = 2
+
+pattern CLOSE_BUTTON_SHOW_ACTIVE_ONLY :: Int
+
+pattern CLOSE_BUTTON_SHOW_ACTIVE_ONLY = 1
+
+pattern ALIGN_MAX :: Int
+
+pattern ALIGN_MAX = 3
+
+pattern CLOSE_BUTTON_MAX :: Int
+
+pattern CLOSE_BUTTON_MAX = 3
+
+pattern CLOSE_BUTTON_SHOW_ALWAYS :: Int
+
+pattern CLOSE_BUTTON_SHOW_ALWAYS = 2
+
+pattern CLOSE_BUTTON_SHOW_NEVER :: Int
+
+pattern CLOSE_BUTTON_SHOW_NEVER = 0
+
+pattern ALIGN_LEFT :: Int
+
+pattern ALIGN_LEFT = 0
+
+pattern ALIGN_CENTER :: Int
+
+pattern ALIGN_CENTER = 1
+
+tab_close :: Signal GodotTabs
+tab_close = Signal "tab_close"
+
+tab_clicked :: Signal GodotTabs
+tab_clicked = Signal "tab_clicked"
+
+reposition_active_tab_request :: Signal GodotTabs
+reposition_active_tab_request
+  = Signal "reposition_active_tab_request"
+
+right_button_pressed :: Signal GodotTabs
+right_button_pressed = Signal "right_button_pressed"
+
+tab_changed :: Signal GodotTabs
+tab_changed = Signal "tab_changed"
+
+tab_hover :: Signal GodotTabs
+tab_hover = Signal "tab_hover"
diff --git a/src/Godot/Core/GodotTextEdit.hs b/src/Godot/Core/GodotTextEdit.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTextEdit.hs
@@ -0,0 +1,63 @@
+module Godot.Core.GodotTextEdit where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MENU_PASTE :: Int
+
+pattern MENU_PASTE = 2
+
+pattern SEARCH_WHOLE_WORDS :: Int
+
+pattern SEARCH_WHOLE_WORDS = 2
+
+pattern MENU_CLEAR :: Int
+
+pattern MENU_CLEAR = 3
+
+pattern MENU_MAX :: Int
+
+pattern MENU_MAX = 6
+
+pattern SEARCH_BACKWARDS :: Int
+
+pattern SEARCH_BACKWARDS = 4
+
+pattern MENU_COPY :: Int
+
+pattern MENU_COPY = 1
+
+pattern MENU_UNDO :: Int
+
+pattern MENU_UNDO = 5
+
+pattern MENU_SELECT_ALL :: Int
+
+pattern MENU_SELECT_ALL = 4
+
+pattern MENU_CUT :: Int
+
+pattern MENU_CUT = 0
+
+pattern SEARCH_MATCH_CASE :: Int
+
+pattern SEARCH_MATCH_CASE = 1
+
+breakpoint_toggled :: Signal GodotTextEdit
+breakpoint_toggled = Signal "breakpoint_toggled"
+
+text_changed :: Signal GodotTextEdit
+text_changed = Signal "text_changed"
+
+symbol_lookup :: Signal GodotTextEdit
+symbol_lookup = Signal "symbol_lookup"
+
+cursor_changed :: Signal GodotTextEdit
+cursor_changed = Signal "cursor_changed"
+
+request_completion :: Signal GodotTextEdit
+request_completion = Signal "request_completion"
diff --git a/src/Godot/Core/GodotTextFile.hs b/src/Godot/Core/GodotTextFile.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTextFile.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotTextFile where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotTexture.hs b/src/Godot/Core/GodotTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTexture.hs
@@ -0,0 +1,40 @@
+module Godot.Core.GodotTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FLAG_VIDEO_SURFACE :: Int
+
+pattern FLAG_VIDEO_SURFACE = 2048
+
+pattern FLAGS_DEFAULT :: Int
+
+pattern FLAGS_DEFAULT = 7
+
+pattern FLAG_REPEAT :: Int
+
+pattern FLAG_REPEAT = 2
+
+pattern FLAG_CONVERT_TO_LINEAR :: Int
+
+pattern FLAG_CONVERT_TO_LINEAR = 16
+
+pattern FLAG_ANISOTROPIC_FILTER :: Int
+
+pattern FLAG_ANISOTROPIC_FILTER = 8
+
+pattern FLAG_MIPMAPS :: Int
+
+pattern FLAG_MIPMAPS = 1
+
+pattern FLAG_FILTER :: Int
+
+pattern FLAG_FILTER = 4
+
+pattern FLAG_MIRRORED_REPEAT :: Int
+
+pattern FLAG_MIRRORED_REPEAT = 32
diff --git a/src/Godot/Core/GodotTexture3D.hs b/src/Godot/Core/GodotTexture3D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTexture3D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotTexture3D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotTextureArray.hs b/src/Godot/Core/GodotTextureArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTextureArray.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotTextureArray where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotTextureButton.hs b/src/Godot/Core/GodotTextureButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTextureButton.hs
@@ -0,0 +1,36 @@
+module Godot.Core.GodotTextureButton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern STRETCH_TILE :: Int
+
+pattern STRETCH_TILE = 1
+
+pattern STRETCH_KEEP_ASPECT_COVERED :: Int
+
+pattern STRETCH_KEEP_ASPECT_COVERED = 6
+
+pattern STRETCH_KEEP_ASPECT :: Int
+
+pattern STRETCH_KEEP_ASPECT = 4
+
+pattern STRETCH_SCALE :: Int
+
+pattern STRETCH_SCALE = 0
+
+pattern STRETCH_KEEP :: Int
+
+pattern STRETCH_KEEP = 2
+
+pattern STRETCH_KEEP_CENTERED :: Int
+
+pattern STRETCH_KEEP_CENTERED = 3
+
+pattern STRETCH_KEEP_ASPECT_CENTERED :: Int
+
+pattern STRETCH_KEEP_ASPECT_CENTERED = 5
diff --git a/src/Godot/Core/GodotTextureLayered.hs b/src/Godot/Core/GodotTextureLayered.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTextureLayered.hs
@@ -0,0 +1,24 @@
+module Godot.Core.GodotTextureLayered where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FLAGS_DEFAULT :: Int
+
+pattern FLAGS_DEFAULT = 4
+
+pattern FLAG_REPEAT :: Int
+
+pattern FLAG_REPEAT = 2
+
+pattern FLAG_MIPMAPS :: Int
+
+pattern FLAG_MIPMAPS = 1
+
+pattern FLAG_FILTER :: Int
+
+pattern FLAG_FILTER = 4
diff --git a/src/Godot/Core/GodotTextureProgress.hs b/src/Godot/Core/GodotTextureProgress.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTextureProgress.hs
@@ -0,0 +1,44 @@
+module Godot.Core.GodotTextureProgress where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FILL_BOTTOM_TO_TOP :: Int
+
+pattern FILL_BOTTOM_TO_TOP = 3
+
+pattern FILL_TOP_TO_BOTTOM :: Int
+
+pattern FILL_TOP_TO_BOTTOM = 2
+
+pattern FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE :: Int
+
+pattern FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE = 8
+
+pattern FILL_RIGHT_TO_LEFT :: Int
+
+pattern FILL_RIGHT_TO_LEFT = 1
+
+pattern FILL_CLOCKWISE :: Int
+
+pattern FILL_CLOCKWISE = 4
+
+pattern FILL_LEFT_TO_RIGHT :: Int
+
+pattern FILL_LEFT_TO_RIGHT = 0
+
+pattern FILL_BILINEAR_LEFT_AND_RIGHT :: Int
+
+pattern FILL_BILINEAR_LEFT_AND_RIGHT = 6
+
+pattern FILL_COUNTER_CLOCKWISE :: Int
+
+pattern FILL_COUNTER_CLOCKWISE = 5
+
+pattern FILL_BILINEAR_TOP_AND_BOTTOM :: Int
+
+pattern FILL_BILINEAR_TOP_AND_BOTTOM = 7
diff --git a/src/Godot/Core/GodotTextureRect.hs b/src/Godot/Core/GodotTextureRect.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTextureRect.hs
@@ -0,0 +1,40 @@
+module Godot.Core.GodotTextureRect where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern STRETCH_TILE :: Int
+
+pattern STRETCH_TILE = 2
+
+pattern STRETCH_KEEP_ASPECT_COVERED :: Int
+
+pattern STRETCH_KEEP_ASPECT_COVERED = 7
+
+pattern STRETCH_KEEP_ASPECT :: Int
+
+pattern STRETCH_KEEP_ASPECT = 5
+
+pattern STRETCH_SCALE_ON_EXPAND :: Int
+
+pattern STRETCH_SCALE_ON_EXPAND = 0
+
+pattern STRETCH_SCALE :: Int
+
+pattern STRETCH_SCALE = 1
+
+pattern STRETCH_KEEP :: Int
+
+pattern STRETCH_KEEP = 3
+
+pattern STRETCH_KEEP_CENTERED :: Int
+
+pattern STRETCH_KEEP_CENTERED = 4
+
+pattern STRETCH_KEEP_ASPECT_CENTERED :: Int
+
+pattern STRETCH_KEEP_ASPECT_CENTERED = 6
diff --git a/src/Godot/Core/GodotTheme.hs b/src/Godot/Core/GodotTheme.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTheme.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotTheme where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotTileMap.hs b/src/Godot/Core/GodotTileMap.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTileMap.hs
@@ -0,0 +1,51 @@
+module Godot.Core.GodotTileMap where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MODE_CUSTOM :: Int
+
+pattern MODE_CUSTOM = 2
+
+pattern HALF_OFFSET_Y :: Int
+
+pattern HALF_OFFSET_Y = 1
+
+pattern MODE_SQUARE :: Int
+
+pattern MODE_SQUARE = 0
+
+pattern TILE_ORIGIN_BOTTOM_LEFT :: Int
+
+pattern TILE_ORIGIN_BOTTOM_LEFT = 2
+
+pattern TILE_ORIGIN_CENTER :: Int
+
+pattern TILE_ORIGIN_CENTER = 1
+
+pattern HALF_OFFSET_DISABLED :: Int
+
+pattern HALF_OFFSET_DISABLED = 2
+
+pattern TILE_ORIGIN_TOP_LEFT :: Int
+
+pattern TILE_ORIGIN_TOP_LEFT = 0
+
+pattern MODE_ISOMETRIC :: Int
+
+pattern MODE_ISOMETRIC = 1
+
+pattern INVALID_CELL :: Int
+
+pattern INVALID_CELL = -1
+
+pattern HALF_OFFSET_X :: Int
+
+pattern HALF_OFFSET_X = 0
+
+settings_changed :: Signal GodotTileMap
+settings_changed = Signal "settings_changed"
diff --git a/src/Godot/Core/GodotTileSet.hs b/src/Godot/Core/GodotTileSet.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTileSet.hs
@@ -0,0 +1,64 @@
+module Godot.Core.GodotTileSet where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern BITMASK_2X2 :: Int
+
+pattern BITMASK_2X2 = 0
+
+pattern BITMASK_3X3 :: Int
+
+pattern BITMASK_3X3 = 2
+
+pattern BIND_BOTTOMLEFT :: Int
+
+pattern BIND_BOTTOMLEFT = 64
+
+pattern BIND_LEFT :: Int
+
+pattern BIND_LEFT = 8
+
+pattern ATLAS_TILE :: Int
+
+pattern ATLAS_TILE = 2
+
+pattern BITMASK_3X3_MINIMAL :: Int
+
+pattern BITMASK_3X3_MINIMAL = 1
+
+pattern BIND_RIGHT :: Int
+
+pattern BIND_RIGHT = 32
+
+pattern BIND_TOPLEFT :: Int
+
+pattern BIND_TOPLEFT = 1
+
+pattern BIND_BOTTOM :: Int
+
+pattern BIND_BOTTOM = 128
+
+pattern BIND_BOTTOMRIGHT :: Int
+
+pattern BIND_BOTTOMRIGHT = 256
+
+pattern AUTO_TILE :: Int
+
+pattern AUTO_TILE = 1
+
+pattern BIND_TOP :: Int
+
+pattern BIND_TOP = 2
+
+pattern BIND_TOPRIGHT :: Int
+
+pattern BIND_TOPRIGHT = 4
+
+pattern SINGLE_TILE :: Int
+
+pattern SINGLE_TILE = 0
diff --git a/src/Godot/Core/GodotTimer.hs b/src/Godot/Core/GodotTimer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTimer.hs
@@ -0,0 +1,19 @@
+module Godot.Core.GodotTimer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern TIMER_PROCESS_PHYSICS :: Int
+
+pattern TIMER_PROCESS_PHYSICS = 0
+
+pattern TIMER_PROCESS_IDLE :: Int
+
+pattern TIMER_PROCESS_IDLE = 1
+
+timeout :: Signal GodotTimer
+timeout = Signal "timeout"
diff --git a/src/Godot/Core/GodotToolButton.hs b/src/Godot/Core/GodotToolButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotToolButton.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotToolButton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotTouchScreenButton.hs b/src/Godot/Core/GodotTouchScreenButton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTouchScreenButton.hs
@@ -0,0 +1,22 @@
+module Godot.Core.GodotTouchScreenButton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern VISIBILITY_ALWAYS :: Int
+
+pattern VISIBILITY_ALWAYS = 0
+
+pattern VISIBILITY_TOUCHSCREEN_ONLY :: Int
+
+pattern VISIBILITY_TOUCHSCREEN_ONLY = 1
+
+released :: Signal GodotTouchScreenButton
+released = Signal "released"
+
+pressed :: Signal GodotTouchScreenButton
+pressed = Signal "pressed"
diff --git a/src/Godot/Core/GodotTranslation.hs b/src/Godot/Core/GodotTranslation.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTranslation.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotTranslation where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotTranslationServer.hs b/src/Godot/Core/GodotTranslationServer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTranslationServer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotTranslationServer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotTree.hs b/src/Godot/Core/GodotTree.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTree.hs
@@ -0,0 +1,77 @@
+module Godot.Core.GodotTree where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern DROP_MODE_DISABLED :: Int
+
+pattern DROP_MODE_DISABLED = 0
+
+pattern SELECT_ROW :: Int
+
+pattern SELECT_ROW = 1
+
+pattern SELECT_MULTI :: Int
+
+pattern SELECT_MULTI = 2
+
+pattern DROP_MODE_ON_ITEM :: Int
+
+pattern DROP_MODE_ON_ITEM = 1
+
+pattern DROP_MODE_INBETWEEN :: Int
+
+pattern DROP_MODE_INBETWEEN = 2
+
+pattern SELECT_SINGLE :: Int
+
+pattern SELECT_SINGLE = 0
+
+item_activated :: Signal GodotTree
+item_activated = Signal "item_activated"
+
+multi_selected :: Signal GodotTree
+multi_selected = Signal "multi_selected"
+
+column_title_pressed :: Signal GodotTree
+column_title_pressed = Signal "column_title_pressed"
+
+custom_popup_edited :: Signal GodotTree
+custom_popup_edited = Signal "custom_popup_edited"
+
+item_collapsed :: Signal GodotTree
+item_collapsed = Signal "item_collapsed"
+
+item_rmb_edited :: Signal GodotTree
+item_rmb_edited = Signal "item_rmb_edited"
+
+item_edited :: Signal GodotTree
+item_edited = Signal "item_edited"
+
+empty_tree_rmb_selected :: Signal GodotTree
+empty_tree_rmb_selected = Signal "empty_tree_rmb_selected"
+
+nothing_selected :: Signal GodotTree
+nothing_selected = Signal "nothing_selected"
+
+item_double_clicked :: Signal GodotTree
+item_double_clicked = Signal "item_double_clicked"
+
+item_rmb_selected :: Signal GodotTree
+item_rmb_selected = Signal "item_rmb_selected"
+
+item_selected :: Signal GodotTree
+item_selected = Signal "item_selected"
+
+cell_selected :: Signal GodotTree
+cell_selected = Signal "cell_selected"
+
+button_pressed :: Signal GodotTree
+button_pressed = Signal "button_pressed"
+
+item_custom_button_pressed :: Signal GodotTree
+item_custom_button_pressed = Signal "item_custom_button_pressed"
diff --git a/src/Godot/Core/GodotTreeItem.hs b/src/Godot/Core/GodotTreeItem.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTreeItem.hs
@@ -0,0 +1,40 @@
+module Godot.Core.GodotTreeItem where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ALIGN_RIGHT :: Int
+
+pattern ALIGN_RIGHT = 2
+
+pattern CELL_MODE_CUSTOM :: Int
+
+pattern CELL_MODE_CUSTOM = 4
+
+pattern CELL_MODE_ICON :: Int
+
+pattern CELL_MODE_ICON = 3
+
+pattern CELL_MODE_RANGE :: Int
+
+pattern CELL_MODE_RANGE = 2
+
+pattern CELL_MODE_STRING :: Int
+
+pattern CELL_MODE_STRING = 0
+
+pattern CELL_MODE_CHECK :: Int
+
+pattern CELL_MODE_CHECK = 1
+
+pattern ALIGN_LEFT :: Int
+
+pattern ALIGN_LEFT = 0
+
+pattern ALIGN_CENTER :: Int
+
+pattern ALIGN_CENTER = 1
diff --git a/src/Godot/Core/GodotTriangleMesh.hs b/src/Godot/Core/GodotTriangleMesh.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTriangleMesh.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotTriangleMesh where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotTween.hs b/src/Godot/Core/GodotTween.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotTween.hs
@@ -0,0 +1,85 @@
+module Godot.Core.GodotTween where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern TRANS_SINE :: Int
+
+pattern TRANS_SINE = 1
+
+pattern TWEEN_PROCESS_IDLE :: Int
+
+pattern TWEEN_PROCESS_IDLE = 1
+
+pattern TWEEN_PROCESS_PHYSICS :: Int
+
+pattern TWEEN_PROCESS_PHYSICS = 0
+
+pattern TRANS_LINEAR :: Int
+
+pattern TRANS_LINEAR = 0
+
+pattern EASE_OUT_IN :: Int
+
+pattern EASE_OUT_IN = 3
+
+pattern TRANS_QUAD :: Int
+
+pattern TRANS_QUAD = 4
+
+pattern TRANS_EXPO :: Int
+
+pattern TRANS_EXPO = 5
+
+pattern EASE_IN :: Int
+
+pattern EASE_IN = 0
+
+pattern TRANS_QUINT :: Int
+
+pattern TRANS_QUINT = 2
+
+pattern TRANS_BOUNCE :: Int
+
+pattern TRANS_BOUNCE = 9
+
+pattern TRANS_ELASTIC :: Int
+
+pattern TRANS_ELASTIC = 6
+
+pattern TRANS_CUBIC :: Int
+
+pattern TRANS_CUBIC = 7
+
+pattern EASE_OUT :: Int
+
+pattern EASE_OUT = 1
+
+pattern EASE_IN_OUT :: Int
+
+pattern EASE_IN_OUT = 2
+
+pattern TRANS_QUART :: Int
+
+pattern TRANS_QUART = 3
+
+pattern TRANS_BACK :: Int
+
+pattern TRANS_BACK = 10
+
+pattern TRANS_CIRC :: Int
+
+pattern TRANS_CIRC = 8
+
+tween_step :: Signal GodotTween
+tween_step = Signal "tween_step"
+
+tween_completed :: Signal GodotTween
+tween_completed = Signal "tween_completed"
+
+tween_started :: Signal GodotTween
+tween_started = Signal "tween_started"
diff --git a/src/Godot/Core/GodotUPNP.hs b/src/Godot/Core/GodotUPNP.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotUPNP.hs
@@ -0,0 +1,124 @@
+module Godot.Core.GodotUPNP where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern UPNP_RESULT_NO_SUCH_ENTRY_IN_ARRAY :: Int
+
+pattern UPNP_RESULT_NO_SUCH_ENTRY_IN_ARRAY = 4
+
+pattern UPNP_RESULT_NO_DEVICES :: Int
+
+pattern UPNP_RESULT_NO_DEVICES = 27
+
+pattern UPNP_RESULT_EXT_PORT_WILDCARD_NOT_PERMITTED :: Int
+
+pattern UPNP_RESULT_EXT_PORT_WILDCARD_NOT_PERMITTED = 7
+
+pattern UPNP_RESULT_SAME_PORT_VALUES_REQUIRED :: Int
+
+pattern UPNP_RESULT_SAME_PORT_VALUES_REQUIRED = 14
+
+pattern UPNP_RESULT_MEM_ALLOC_ERROR :: Int
+
+pattern UPNP_RESULT_MEM_ALLOC_ERROR = 25
+
+pattern UPNP_RESULT_INVALID_PROTOCOL :: Int
+
+pattern UPNP_RESULT_INVALID_PROTOCOL = 18
+
+pattern UPNP_RESULT_HTTP_ERROR :: Int
+
+pattern UPNP_RESULT_HTTP_ERROR = 23
+
+pattern UPNP_RESULT_INT_PORT_WILDCARD_NOT_PERMITTED :: Int
+
+pattern UPNP_RESULT_INT_PORT_WILDCARD_NOT_PERMITTED = 8
+
+pattern UPNP_RESULT_INVALID_PORT :: Int
+
+pattern UPNP_RESULT_INVALID_PORT = 17
+
+pattern UPNP_RESULT_ACTION_FAILED :: Int
+
+pattern UPNP_RESULT_ACTION_FAILED = 5
+
+pattern UPNP_RESULT_PORT_MAPPING_NOT_FOUND :: Int
+
+pattern UPNP_RESULT_PORT_MAPPING_NOT_FOUND = 2
+
+pattern UPNP_RESULT_INVALID_PARAM :: Int
+
+pattern UPNP_RESULT_INVALID_PARAM = 22
+
+pattern UPNP_RESULT_REMOTE_HOST_MUST_BE_WILDCARD :: Int
+
+pattern UPNP_RESULT_REMOTE_HOST_MUST_BE_WILDCARD = 9
+
+pattern UPNP_RESULT_SRC_IP_WILDCARD_NOT_PERMITTED :: Int
+
+pattern UPNP_RESULT_SRC_IP_WILDCARD_NOT_PERMITTED = 6
+
+pattern UPNP_RESULT_NO_GATEWAY :: Int
+
+pattern UPNP_RESULT_NO_GATEWAY = 26
+
+pattern UPNP_RESULT_INVALID_GATEWAY :: Int
+
+pattern UPNP_RESULT_INVALID_GATEWAY = 16
+
+pattern UPNP_RESULT_NOT_AUTHORIZED :: Int
+
+pattern UPNP_RESULT_NOT_AUTHORIZED = 1
+
+pattern UPNP_RESULT_INVALID_RESPONSE :: Int
+
+pattern UPNP_RESULT_INVALID_RESPONSE = 21
+
+pattern UPNP_RESULT_INVALID_DURATION :: Int
+
+pattern UPNP_RESULT_INVALID_DURATION = 19
+
+pattern UPNP_RESULT_UNKNOWN_ERROR :: Int
+
+pattern UPNP_RESULT_UNKNOWN_ERROR = 28
+
+pattern UPNP_RESULT_INCONSISTENT_PARAMETERS :: Int
+
+pattern UPNP_RESULT_INCONSISTENT_PARAMETERS = 3
+
+pattern UPNP_RESULT_EXT_PORT_MUST_BE_WILDCARD :: Int
+
+pattern UPNP_RESULT_EXT_PORT_MUST_BE_WILDCARD = 10
+
+pattern UPNP_RESULT_SOCKET_ERROR :: Int
+
+pattern UPNP_RESULT_SOCKET_ERROR = 24
+
+pattern UPNP_RESULT_NO_PORT_MAPS_AVAILABLE :: Int
+
+pattern UPNP_RESULT_NO_PORT_MAPS_AVAILABLE = 11
+
+pattern UPNP_RESULT_ONLY_PERMANENT_LEASE_SUPPORTED :: Int
+
+pattern UPNP_RESULT_ONLY_PERMANENT_LEASE_SUPPORTED = 15
+
+pattern UPNP_RESULT_INVALID_ARGS :: Int
+
+pattern UPNP_RESULT_INVALID_ARGS = 20
+
+pattern UPNP_RESULT_CONFLICT_WITH_OTHER_MECHANISM :: Int
+
+pattern UPNP_RESULT_CONFLICT_WITH_OTHER_MECHANISM = 12
+
+pattern UPNP_RESULT_SUCCESS :: Int
+
+pattern UPNP_RESULT_SUCCESS = 0
+
+pattern UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING :: Int
+
+pattern UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING = 13
diff --git a/src/Godot/Core/GodotUPNPDevice.hs b/src/Godot/Core/GodotUPNPDevice.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotUPNPDevice.hs
@@ -0,0 +1,48 @@
+module Godot.Core.GodotUPNPDevice where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern IGD_STATUS_INVALID_CONTROL :: Int
+
+pattern IGD_STATUS_INVALID_CONTROL = 7
+
+pattern IGD_STATUS_DISCONNECTED :: Int
+
+pattern IGD_STATUS_DISCONNECTED = 5
+
+pattern IGD_STATUS_OK :: Int
+
+pattern IGD_STATUS_OK = 0
+
+pattern IGD_STATUS_NO_URLS :: Int
+
+pattern IGD_STATUS_NO_URLS = 3
+
+pattern IGD_STATUS_MALLOC_ERROR :: Int
+
+pattern IGD_STATUS_MALLOC_ERROR = 8
+
+pattern IGD_STATUS_UNKNOWN_ERROR :: Int
+
+pattern IGD_STATUS_UNKNOWN_ERROR = 9
+
+pattern IGD_STATUS_HTTP_EMPTY :: Int
+
+pattern IGD_STATUS_HTTP_EMPTY = 2
+
+pattern IGD_STATUS_NO_IGD :: Int
+
+pattern IGD_STATUS_NO_IGD = 4
+
+pattern IGD_STATUS_UNKNOWN_DEVICE :: Int
+
+pattern IGD_STATUS_UNKNOWN_DEVICE = 6
+
+pattern IGD_STATUS_HTTP_ERROR :: Int
+
+pattern IGD_STATUS_HTTP_ERROR = 1
diff --git a/src/Godot/Core/GodotUndoRedo.hs b/src/Godot/Core/GodotUndoRedo.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotUndoRedo.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotUndoRedo where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MERGE_DISABLE :: Int
+
+pattern MERGE_DISABLE = 0
+
+pattern MERGE_ALL :: Int
+
+pattern MERGE_ALL = 2
+
+pattern MERGE_ENDS :: Int
+
+pattern MERGE_ENDS = 1
diff --git a/src/Godot/Core/GodotVBoxContainer.hs b/src/Godot/Core/GodotVBoxContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVBoxContainer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVBoxContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVScrollBar.hs b/src/Godot/Core/GodotVScrollBar.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVScrollBar.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVScrollBar where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVSeparator.hs b/src/Godot/Core/GodotVSeparator.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVSeparator.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVSeparator where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVSlider.hs b/src/Godot/Core/GodotVSlider.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVSlider.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVSlider where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVSplitContainer.hs b/src/Godot/Core/GodotVSplitContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVSplitContainer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVSplitContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVehicleBody.hs b/src/Godot/Core/GodotVehicleBody.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVehicleBody.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVehicleBody where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVehicleWheel.hs b/src/Godot/Core/GodotVehicleWheel.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVehicleWheel.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVehicleWheel where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVideoPlayer.hs b/src/Godot/Core/GodotVideoPlayer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVideoPlayer.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotVideoPlayer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+finished :: Signal GodotVideoPlayer
+finished = Signal "finished"
diff --git a/src/Godot/Core/GodotVideoStream.hs b/src/Godot/Core/GodotVideoStream.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVideoStream.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVideoStream where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVideoStreamTheora.hs b/src/Godot/Core/GodotVideoStreamTheora.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVideoStreamTheora.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVideoStreamTheora where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVideoStreamWebm.hs b/src/Godot/Core/GodotVideoStreamWebm.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVideoStreamWebm.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVideoStreamWebm where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotViewport.hs b/src/Godot/Core/GodotViewport.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotViewport.hs
@@ -0,0 +1,151 @@
+module Godot.Core.GodotViewport where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CLEAR_MODE_ONLY_NEXT_FRAME :: Int
+
+pattern CLEAR_MODE_ONLY_NEXT_FRAME = 2
+
+pattern DEBUG_DRAW_OVERDRAW :: Int
+
+pattern DEBUG_DRAW_OVERDRAW = 2
+
+pattern UPDATE_ALWAYS :: Int
+
+pattern UPDATE_ALWAYS = 3
+
+pattern RENDER_INFO_MATERIAL_CHANGES_IN_FRAME :: Int
+
+pattern RENDER_INFO_MATERIAL_CHANGES_IN_FRAME = 2
+
+pattern USAGE_3D :: Int
+
+pattern USAGE_3D = 2
+
+pattern MSAA_4X :: Int
+
+pattern MSAA_4X = 2
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_1024 :: Int
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_1024 = 6
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_16 :: Int
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_16 = 3
+
+pattern RENDER_INFO_SHADER_CHANGES_IN_FRAME :: Int
+
+pattern RENDER_INFO_SHADER_CHANGES_IN_FRAME = 3
+
+pattern RENDER_INFO_MAX :: Int
+
+pattern RENDER_INFO_MAX = 6
+
+pattern CLEAR_MODE_NEVER :: Int
+
+pattern CLEAR_MODE_NEVER = 1
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_64 :: Int
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_64 = 4
+
+pattern USAGE_3D_NO_EFFECTS :: Int
+
+pattern USAGE_3D_NO_EFFECTS = 3
+
+pattern RENDER_INFO_OBJECTS_IN_FRAME :: Int
+
+pattern RENDER_INFO_OBJECTS_IN_FRAME = 0
+
+pattern MSAA_2X :: Int
+
+pattern MSAA_2X = 1
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_256 :: Int
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_256 = 5
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_MAX :: Int
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_MAX = 7
+
+pattern UPDATE_DISABLED :: Int
+
+pattern UPDATE_DISABLED = 0
+
+pattern MSAA_DISABLED :: Int
+
+pattern MSAA_DISABLED = 0
+
+pattern DEBUG_DRAW_DISABLED :: Int
+
+pattern DEBUG_DRAW_DISABLED = 0
+
+pattern MSAA_8X :: Int
+
+pattern MSAA_8X = 3
+
+pattern USAGE_2D :: Int
+
+pattern USAGE_2D = 0
+
+pattern RENDER_INFO_VERTICES_IN_FRAME :: Int
+
+pattern RENDER_INFO_VERTICES_IN_FRAME = 1
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED :: Int
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED = 0
+
+pattern DEBUG_DRAW_UNSHADED :: Int
+
+pattern DEBUG_DRAW_UNSHADED = 1
+
+pattern DEBUG_DRAW_WIREFRAME :: Int
+
+pattern DEBUG_DRAW_WIREFRAME = 3
+
+pattern RENDER_INFO_DRAW_CALLS_IN_FRAME :: Int
+
+pattern RENDER_INFO_DRAW_CALLS_IN_FRAME = 5
+
+pattern UPDATE_WHEN_VISIBLE :: Int
+
+pattern UPDATE_WHEN_VISIBLE = 2
+
+pattern CLEAR_MODE_ALWAYS :: Int
+
+pattern CLEAR_MODE_ALWAYS = 0
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_1 :: Int
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_1 = 1
+
+pattern MSAA_16X :: Int
+
+pattern MSAA_16X = 4
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_4 :: Int
+
+pattern SHADOW_ATLAS_QUADRANT_SUBDIV_4 = 2
+
+pattern USAGE_2D_NO_SAMPLING :: Int
+
+pattern USAGE_2D_NO_SAMPLING = 1
+
+pattern UPDATE_ONCE :: Int
+
+pattern UPDATE_ONCE = 1
+
+pattern RENDER_INFO_SURFACE_CHANGES_IN_FRAME :: Int
+
+pattern RENDER_INFO_SURFACE_CHANGES_IN_FRAME = 4
+
+size_changed :: Signal GodotViewport
+size_changed = Signal "size_changed"
diff --git a/src/Godot/Core/GodotViewportContainer.hs b/src/Godot/Core/GodotViewportContainer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotViewportContainer.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotViewportContainer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotViewportTexture.hs b/src/Godot/Core/GodotViewportTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotViewportTexture.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotViewportTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisibilityEnabler.hs b/src/Godot/Core/GodotVisibilityEnabler.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisibilityEnabler.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotVisibilityEnabler where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ENABLER_MAX :: Int
+
+pattern ENABLER_MAX = 2
+
+pattern ENABLER_PAUSE_ANIMATIONS :: Int
+
+pattern ENABLER_PAUSE_ANIMATIONS = 0
+
+pattern ENABLER_FREEZE_BODIES :: Int
+
+pattern ENABLER_FREEZE_BODIES = 1
diff --git a/src/Godot/Core/GodotVisibilityEnabler2D.hs b/src/Godot/Core/GodotVisibilityEnabler2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisibilityEnabler2D.hs
@@ -0,0 +1,36 @@
+module Godot.Core.GodotVisibilityEnabler2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ENABLER_PARENT_PROCESS :: Int
+
+pattern ENABLER_PARENT_PROCESS = 3
+
+pattern ENABLER_MAX :: Int
+
+pattern ENABLER_MAX = 6
+
+pattern ENABLER_PARENT_PHYSICS_PROCESS :: Int
+
+pattern ENABLER_PARENT_PHYSICS_PROCESS = 4
+
+pattern ENABLER_PAUSE_ANIMATIONS :: Int
+
+pattern ENABLER_PAUSE_ANIMATIONS = 0
+
+pattern ENABLER_PAUSE_ANIMATED_SPRITES :: Int
+
+pattern ENABLER_PAUSE_ANIMATED_SPRITES = 5
+
+pattern ENABLER_PAUSE_PARTICLES :: Int
+
+pattern ENABLER_PAUSE_PARTICLES = 2
+
+pattern ENABLER_FREEZE_BODIES :: Int
+
+pattern ENABLER_FREEZE_BODIES = 1
diff --git a/src/Godot/Core/GodotVisibilityNotifier.hs b/src/Godot/Core/GodotVisibilityNotifier.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisibilityNotifier.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotVisibilityNotifier where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+camera_exited :: Signal GodotVisibilityNotifier
+camera_exited = Signal "camera_exited"
+
+screen_entered :: Signal GodotVisibilityNotifier
+screen_entered = Signal "screen_entered"
+
+camera_entered :: Signal GodotVisibilityNotifier
+camera_entered = Signal "camera_entered"
+
+screen_exited :: Signal GodotVisibilityNotifier
+screen_exited = Signal "screen_exited"
diff --git a/src/Godot/Core/GodotVisibilityNotifier2D.hs b/src/Godot/Core/GodotVisibilityNotifier2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisibilityNotifier2D.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotVisibilityNotifier2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+screen_entered :: Signal GodotVisibilityNotifier2D
+screen_entered = Signal "screen_entered"
+
+viewport_entered :: Signal GodotVisibilityNotifier2D
+viewport_entered = Signal "viewport_entered"
+
+screen_exited :: Signal GodotVisibilityNotifier2D
+screen_exited = Signal "screen_exited"
+
+viewport_exited :: Signal GodotVisibilityNotifier2D
+viewport_exited = Signal "viewport_exited"
diff --git a/src/Godot/Core/GodotVisualInstance.hs b/src/Godot/Core/GodotVisualInstance.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualInstance.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualInstance where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScript.hs b/src/Godot/Core/GodotVisualScript.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScript.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotVisualScript where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+node_ports_changed :: Signal GodotVisualScript
+node_ports_changed = Signal "node_ports_changed"
diff --git a/src/Godot/Core/GodotVisualScriptBasicTypeConstant.hs b/src/Godot/Core/GodotVisualScriptBasicTypeConstant.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptBasicTypeConstant.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptBasicTypeConstant where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptBuiltinFunc.hs b/src/Godot/Core/GodotVisualScriptBuiltinFunc.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptBuiltinFunc.hs
@@ -0,0 +1,264 @@
+module Godot.Core.GodotVisualScriptBuiltinFunc where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MATH_RAD2DEG :: Int
+
+pattern MATH_RAD2DEG = 37
+
+pattern MATH_TAN :: Int
+
+pattern MATH_TAN = 2
+
+pattern MATH_DEG2RAD :: Int
+
+pattern MATH_DEG2RAD = 36
+
+pattern MATH_LERP :: Int
+
+pattern MATH_LERP = 26
+
+pattern MATH_ISINF :: Int
+
+pattern MATH_ISINF = 22
+
+pattern MATH_ATAN2 :: Int
+
+pattern MATH_ATAN2 = 9
+
+pattern TYPE_EXISTS :: Int
+
+pattern TYPE_EXISTS = 52
+
+pattern MATH_WRAPF :: Int
+
+pattern MATH_WRAPF = 43
+
+pattern MATH_ATAN :: Int
+
+pattern MATH_ATAN = 8
+
+pattern MATH_COSH :: Int
+
+pattern MATH_COSH = 4
+
+pattern MATH_SEED :: Int
+
+pattern MATH_SEED = 34
+
+pattern TYPE_CONVERT :: Int
+
+pattern TYPE_CONVERT = 50
+
+pattern LOGIC_MIN :: Int
+
+pattern LOGIC_MIN = 45
+
+pattern MATH_STEPIFY :: Int
+
+pattern MATH_STEPIFY = 25
+
+pattern COLORN :: Int
+
+pattern COLORN = 62
+
+pattern MATH_SQRT :: Int
+
+pattern MATH_SQRT = 10
+
+pattern TEXT_PRINT :: Int
+
+pattern TEXT_PRINT = 55
+
+pattern MATH_DB2LINEAR :: Int
+
+pattern MATH_DB2LINEAR = 39
+
+pattern MATH_RAND :: Int
+
+pattern MATH_RAND = 31
+
+pattern FUNC_FUNCREF :: Int
+
+pattern FUNC_FUNCREF = 49
+
+pattern LOGIC_NEAREST_PO2 :: Int
+
+pattern LOGIC_NEAREST_PO2 = 47
+
+pattern OBJ_WEAKREF :: Int
+
+pattern OBJ_WEAKREF = 48
+
+pattern MATH_CARTESIAN2POLAR :: Int
+
+pattern MATH_CARTESIAN2POLAR = 41
+
+pattern MATH_POLAR2CARTESIAN :: Int
+
+pattern MATH_POLAR2CARTESIAN = 40
+
+pattern MATH_ISNAN :: Int
+
+pattern MATH_ISNAN = 21
+
+pattern MATH_CEIL :: Int
+
+pattern MATH_CEIL = 14
+
+pattern MATH_SIGN :: Int
+
+pattern MATH_SIGN = 17
+
+pattern MATH_TANH :: Int
+
+pattern MATH_TANH = 5
+
+pattern MATH_RANDOM :: Int
+
+pattern MATH_RANDOM = 33
+
+pattern MATH_RANGE_LERP :: Int
+
+pattern MATH_RANGE_LERP = 28
+
+pattern MATH_FMOD :: Int
+
+pattern MATH_FMOD = 11
+
+pattern MATH_DECIMALS :: Int
+
+pattern MATH_DECIMALS = 24
+
+pattern VAR_TO_BYTES :: Int
+
+pattern VAR_TO_BYTES = 60
+
+pattern MATH_ABS :: Int
+
+pattern MATH_ABS = 16
+
+pattern TEXT_STR :: Int
+
+pattern TEXT_STR = 54
+
+pattern BYTES_TO_VAR :: Int
+
+pattern BYTES_TO_VAR = 61
+
+pattern MATH_FLOOR :: Int
+
+pattern MATH_FLOOR = 13
+
+pattern TEXT_PRINTRAW :: Int
+
+pattern TEXT_PRINTRAW = 57
+
+pattern MATH_POW :: Int
+
+pattern MATH_POW = 18
+
+pattern LOGIC_CLAMP :: Int
+
+pattern LOGIC_CLAMP = 46
+
+pattern MATH_EXP :: Int
+
+pattern MATH_EXP = 20
+
+pattern TEXT_CHAR :: Int
+
+pattern TEXT_CHAR = 53
+
+pattern MATH_RANDOMIZE :: Int
+
+pattern MATH_RANDOMIZE = 30
+
+pattern MATH_ASIN :: Int
+
+pattern MATH_ASIN = 6
+
+pattern FUNC_MAX :: Int
+
+pattern FUNC_MAX = 63
+
+pattern LOGIC_MAX :: Int
+
+pattern LOGIC_MAX = 44
+
+pattern MATH_EASE :: Int
+
+pattern MATH_EASE = 23
+
+pattern MATH_ROUND :: Int
+
+pattern MATH_ROUND = 15
+
+pattern MATH_RANDF :: Int
+
+pattern MATH_RANDF = 32
+
+pattern MATH_DECTIME :: Int
+
+pattern MATH_DECTIME = 29
+
+pattern MATH_COS :: Int
+
+pattern MATH_COS = 1
+
+pattern MATH_SIN :: Int
+
+pattern MATH_SIN = 0
+
+pattern VAR_TO_STR :: Int
+
+pattern VAR_TO_STR = 58
+
+pattern MATH_SINH :: Int
+
+pattern MATH_SINH = 3
+
+pattern STR_TO_VAR :: Int
+
+pattern STR_TO_VAR = 59
+
+pattern MATH_INVERSE_LERP :: Int
+
+pattern MATH_INVERSE_LERP = 27
+
+pattern MATH_FPOSMOD :: Int
+
+pattern MATH_FPOSMOD = 12
+
+pattern MATH_WRAP :: Int
+
+pattern MATH_WRAP = 42
+
+pattern MATH_LOG :: Int
+
+pattern MATH_LOG = 19
+
+pattern TYPE_OF :: Int
+
+pattern TYPE_OF = 51
+
+pattern TEXT_PRINTERR :: Int
+
+pattern TEXT_PRINTERR = 56
+
+pattern MATH_LINEAR2DB :: Int
+
+pattern MATH_LINEAR2DB = 38
+
+pattern MATH_ACOS :: Int
+
+pattern MATH_ACOS = 7
+
+pattern MATH_RANDSEED :: Int
+
+pattern MATH_RANDSEED = 35
diff --git a/src/Godot/Core/GodotVisualScriptClassConstant.hs b/src/Godot/Core/GodotVisualScriptClassConstant.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptClassConstant.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptClassConstant where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptComment.hs b/src/Godot/Core/GodotVisualScriptComment.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptComment.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptComment where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptCondition.hs b/src/Godot/Core/GodotVisualScriptCondition.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptCondition.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptCondition where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptConstant.hs b/src/Godot/Core/GodotVisualScriptConstant.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptConstant.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptConstant where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptConstructor.hs b/src/Godot/Core/GodotVisualScriptConstructor.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptConstructor.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptConstructor where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptCustomNode.hs b/src/Godot/Core/GodotVisualScriptCustomNode.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptCustomNode.hs
@@ -0,0 +1,40 @@
+module Godot.Core.GodotVisualScriptCustomNode where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern STEP_PUSH_STACK_BIT :: Int
+
+pattern STEP_PUSH_STACK_BIT = 16777216
+
+pattern START_MODE_RESUME_YIELD :: Int
+
+pattern START_MODE_RESUME_YIELD = 2
+
+pattern STEP_EXIT_FUNCTION_BIT :: Int
+
+pattern STEP_EXIT_FUNCTION_BIT = 134217728
+
+pattern STEP_YIELD_BIT :: Int
+
+pattern STEP_YIELD_BIT = 268435456
+
+pattern STEP_NO_ADVANCE_BIT :: Int
+
+pattern STEP_NO_ADVANCE_BIT = 67108864
+
+pattern START_MODE_BEGIN_SEQUENCE :: Int
+
+pattern START_MODE_BEGIN_SEQUENCE = 0
+
+pattern START_MODE_CONTINUE_SEQUENCE :: Int
+
+pattern START_MODE_CONTINUE_SEQUENCE = 1
+
+pattern STEP_GO_BACK_BIT :: Int
+
+pattern STEP_GO_BACK_BIT = 33554432
diff --git a/src/Godot/Core/GodotVisualScriptDeconstruct.hs b/src/Godot/Core/GodotVisualScriptDeconstruct.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptDeconstruct.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptDeconstruct where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptEmitSignal.hs b/src/Godot/Core/GodotVisualScriptEmitSignal.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptEmitSignal.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptEmitSignal where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptEngineSingleton.hs b/src/Godot/Core/GodotVisualScriptEngineSingleton.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptEngineSingleton.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptEngineSingleton where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptExpression.hs b/src/Godot/Core/GodotVisualScriptExpression.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptExpression.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptExpression where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptFunction.hs b/src/Godot/Core/GodotVisualScriptFunction.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptFunction.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptFunction where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptFunctionCall.hs b/src/Godot/Core/GodotVisualScriptFunctionCall.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptFunctionCall.hs
@@ -0,0 +1,48 @@
+module Godot.Core.GodotVisualScriptFunctionCall where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CALL_MODE_BASIC_TYPE :: Int
+
+pattern CALL_MODE_BASIC_TYPE = 3
+
+pattern RPC_UNRELIABLE_TO_ID :: Int
+
+pattern RPC_UNRELIABLE_TO_ID = 4
+
+pattern CALL_MODE_NODE_PATH :: Int
+
+pattern CALL_MODE_NODE_PATH = 1
+
+pattern RPC_UNRELIABLE :: Int
+
+pattern RPC_UNRELIABLE = 2
+
+pattern CALL_MODE_SELF :: Int
+
+pattern CALL_MODE_SELF = 0
+
+pattern RPC_RELIABLE_TO_ID :: Int
+
+pattern RPC_RELIABLE_TO_ID = 3
+
+pattern CALL_MODE_INSTANCE :: Int
+
+pattern CALL_MODE_INSTANCE = 2
+
+pattern CALL_MODE_SINGLETON :: Int
+
+pattern CALL_MODE_SINGLETON = 4
+
+pattern RPC_DISABLED :: Int
+
+pattern RPC_DISABLED = 0
+
+pattern RPC_RELIABLE :: Int
+
+pattern RPC_RELIABLE = 1
diff --git a/src/Godot/Core/GodotVisualScriptFunctionState.hs b/src/Godot/Core/GodotVisualScriptFunctionState.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptFunctionState.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptFunctionState where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptGlobalConstant.hs b/src/Godot/Core/GodotVisualScriptGlobalConstant.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptGlobalConstant.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptGlobalConstant where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptIndexGet.hs b/src/Godot/Core/GodotVisualScriptIndexGet.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptIndexGet.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptIndexGet where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptIndexSet.hs b/src/Godot/Core/GodotVisualScriptIndexSet.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptIndexSet.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptIndexSet where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptInputAction.hs b/src/Godot/Core/GodotVisualScriptInputAction.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptInputAction.hs
@@ -0,0 +1,24 @@
+module Godot.Core.GodotVisualScriptInputAction where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MODE_PRESSED :: Int
+
+pattern MODE_PRESSED = 0
+
+pattern MODE_JUST_PRESSED :: Int
+
+pattern MODE_JUST_PRESSED = 2
+
+pattern MODE_JUST_RELEASED :: Int
+
+pattern MODE_JUST_RELEASED = 3
+
+pattern MODE_RELEASED :: Int
+
+pattern MODE_RELEASED = 1
diff --git a/src/Godot/Core/GodotVisualScriptIterator.hs b/src/Godot/Core/GodotVisualScriptIterator.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptIterator.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptIterator where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptLocalVar.hs b/src/Godot/Core/GodotVisualScriptLocalVar.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptLocalVar.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptLocalVar where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptLocalVarSet.hs b/src/Godot/Core/GodotVisualScriptLocalVarSet.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptLocalVarSet.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptLocalVarSet where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptMathConstant.hs b/src/Godot/Core/GodotVisualScriptMathConstant.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptMathConstant.hs
@@ -0,0 +1,44 @@
+module Godot.Core.GodotVisualScriptMathConstant where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern MATH_CONSTANT_INF :: Int
+
+pattern MATH_CONSTANT_INF = 6
+
+pattern MATH_CONSTANT_MAX :: Int
+
+pattern MATH_CONSTANT_MAX = 8
+
+pattern MATH_CONSTANT_HALF_PI :: Int
+
+pattern MATH_CONSTANT_HALF_PI = 2
+
+pattern MATH_CONSTANT_TAU :: Int
+
+pattern MATH_CONSTANT_TAU = 3
+
+pattern MATH_CONSTANT_NAN :: Int
+
+pattern MATH_CONSTANT_NAN = 7
+
+pattern MATH_CONSTANT_PI :: Int
+
+pattern MATH_CONSTANT_PI = 1
+
+pattern MATH_CONSTANT_ONE :: Int
+
+pattern MATH_CONSTANT_ONE = 0
+
+pattern MATH_CONSTANT_SQRT2 :: Int
+
+pattern MATH_CONSTANT_SQRT2 = 5
+
+pattern MATH_CONSTANT_E :: Int
+
+pattern MATH_CONSTANT_E = 4
diff --git a/src/Godot/Core/GodotVisualScriptNode.hs b/src/Godot/Core/GodotVisualScriptNode.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptNode.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotVisualScriptNode where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+ports_changed :: Signal GodotVisualScriptNode
+ports_changed = Signal "ports_changed"
diff --git a/src/Godot/Core/GodotVisualScriptOperator.hs b/src/Godot/Core/GodotVisualScriptOperator.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptOperator.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptOperator where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptPreload.hs b/src/Godot/Core/GodotVisualScriptPreload.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptPreload.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptPreload where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptPropertyGet.hs b/src/Godot/Core/GodotVisualScriptPropertyGet.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptPropertyGet.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotVisualScriptPropertyGet where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CALL_MODE_NODE_PATH :: Int
+
+pattern CALL_MODE_NODE_PATH = 1
+
+pattern CALL_MODE_SELF :: Int
+
+pattern CALL_MODE_SELF = 0
+
+pattern CALL_MODE_INSTANCE :: Int
+
+pattern CALL_MODE_INSTANCE = 2
diff --git a/src/Godot/Core/GodotVisualScriptPropertySet.hs b/src/Godot/Core/GodotVisualScriptPropertySet.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptPropertySet.hs
@@ -0,0 +1,68 @@
+module Godot.Core.GodotVisualScriptPropertySet where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CALL_MODE_BASIC_TYPE :: Int
+
+pattern CALL_MODE_BASIC_TYPE = 3
+
+pattern ASSIGN_OP_SHIFT_LEFT :: Int
+
+pattern ASSIGN_OP_SHIFT_LEFT = 6
+
+pattern ASSIGN_OP_DIV :: Int
+
+pattern ASSIGN_OP_DIV = 4
+
+pattern ASSIGN_OP_MOD :: Int
+
+pattern ASSIGN_OP_MOD = 5
+
+pattern CALL_MODE_NODE_PATH :: Int
+
+pattern CALL_MODE_NODE_PATH = 1
+
+pattern ASSIGN_OP_BIT_OR :: Int
+
+pattern ASSIGN_OP_BIT_OR = 9
+
+pattern ASSIGN_OP_SHIFT_RIGHT :: Int
+
+pattern ASSIGN_OP_SHIFT_RIGHT = 7
+
+pattern ASSIGN_OP_NONE :: Int
+
+pattern ASSIGN_OP_NONE = 0
+
+pattern ASSIGN_OP_ADD :: Int
+
+pattern ASSIGN_OP_ADD = 1
+
+pattern ASSIGN_OP_MUL :: Int
+
+pattern ASSIGN_OP_MUL = 3
+
+pattern ASSIGN_OP_SUB :: Int
+
+pattern ASSIGN_OP_SUB = 2
+
+pattern ASSIGN_OP_BIT_AND :: Int
+
+pattern ASSIGN_OP_BIT_AND = 8
+
+pattern CALL_MODE_SELF :: Int
+
+pattern CALL_MODE_SELF = 0
+
+pattern CALL_MODE_INSTANCE :: Int
+
+pattern CALL_MODE_INSTANCE = 2
+
+pattern ASSIGN_OP_BIT_XOR :: Int
+
+pattern ASSIGN_OP_BIT_XOR = 10
diff --git a/src/Godot/Core/GodotVisualScriptResourcePath.hs b/src/Godot/Core/GodotVisualScriptResourcePath.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptResourcePath.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptResourcePath where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptReturn.hs b/src/Godot/Core/GodotVisualScriptReturn.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptReturn.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptReturn where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptSceneNode.hs b/src/Godot/Core/GodotVisualScriptSceneNode.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptSceneNode.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptSceneNode where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptSceneTree.hs b/src/Godot/Core/GodotVisualScriptSceneTree.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptSceneTree.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptSceneTree where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptSelect.hs b/src/Godot/Core/GodotVisualScriptSelect.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptSelect.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptSelect where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptSelf.hs b/src/Godot/Core/GodotVisualScriptSelf.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptSelf.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptSelf where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptSequence.hs b/src/Godot/Core/GodotVisualScriptSequence.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptSequence.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptSequence where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptSubCall.hs b/src/Godot/Core/GodotVisualScriptSubCall.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptSubCall.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptSubCall where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptSwitch.hs b/src/Godot/Core/GodotVisualScriptSwitch.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptSwitch.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptSwitch where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptTypeCast.hs b/src/Godot/Core/GodotVisualScriptTypeCast.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptTypeCast.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptTypeCast where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptVariableGet.hs b/src/Godot/Core/GodotVisualScriptVariableGet.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptVariableGet.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptVariableGet where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptVariableSet.hs b/src/Godot/Core/GodotVisualScriptVariableSet.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptVariableSet.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptVariableSet where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptWhile.hs b/src/Godot/Core/GodotVisualScriptWhile.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptWhile.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualScriptWhile where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualScriptYield.hs b/src/Godot/Core/GodotVisualScriptYield.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptYield.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotVisualScriptYield where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern YIELD_FRAME :: Int
+
+pattern YIELD_FRAME = 1
+
+pattern YIELD_PHYSICS_FRAME :: Int
+
+pattern YIELD_PHYSICS_FRAME = 2
+
+pattern YIELD_WAIT :: Int
+
+pattern YIELD_WAIT = 3
diff --git a/src/Godot/Core/GodotVisualScriptYieldSignal.hs b/src/Godot/Core/GodotVisualScriptYieldSignal.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualScriptYieldSignal.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotVisualScriptYieldSignal where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CALL_MODE_NODE_PATH :: Int
+
+pattern CALL_MODE_NODE_PATH = 1
+
+pattern CALL_MODE_SELF :: Int
+
+pattern CALL_MODE_SELF = 0
+
+pattern CALL_MODE_INSTANCE :: Int
+
+pattern CALL_MODE_INSTANCE = 2
diff --git a/src/Godot/Core/GodotVisualServer.hs b/src/Godot/Core/GodotVisualServer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualServer.hs
@@ -0,0 +1,854 @@
+module Godot.Core.GodotVisualServer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ARRAY_COMPRESS_WEIGHTS :: Int
+
+pattern ARRAY_COMPRESS_WEIGHTS = 65536
+
+pattern ARRAY_FLAG_USE_16_BIT_BONES :: Int
+
+pattern ARRAY_FLAG_USE_16_BIT_BONES = 524288
+
+pattern VIEWPORT_UPDATE_ALWAYS :: Int
+
+pattern VIEWPORT_UPDATE_ALWAYS = 3
+
+pattern ARRAY_FORMAT_INDEX :: Int
+
+pattern ARRAY_FORMAT_INDEX = 256
+
+pattern INFO_SURFACE_CHANGES_IN_FRAME :: Int
+
+pattern INFO_SURFACE_CHANGES_IN_FRAME = 4
+
+pattern VIEWPORT_DEBUG_DRAW_OVERDRAW :: Int
+
+pattern VIEWPORT_DEBUG_DRAW_OVERDRAW = 2
+
+pattern VIEWPORT_RENDER_INFO_MATERIAL_CHANGES_IN_FRAME :: Int
+
+pattern VIEWPORT_RENDER_INFO_MATERIAL_CHANGES_IN_FRAME = 2
+
+pattern ARRAY_COMPRESS_TANGENT :: Int
+
+pattern ARRAY_COMPRESS_TANGENT = 2048
+
+pattern INSTANCE_MULTIMESH :: Int
+
+pattern INSTANCE_MULTIMESH = 2
+
+pattern VIEWPORT_CLEAR_ALWAYS :: Int
+
+pattern VIEWPORT_CLEAR_ALWAYS = 0
+
+pattern SHADER_SPATIAL :: Int
+
+pattern SHADER_SPATIAL = 0
+
+pattern SHADOW_CASTING_SETTING_SHADOWS_ONLY :: Int
+
+pattern SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3
+
+pattern ARRAY_COMPRESS_NORMAL :: Int
+
+pattern ARRAY_COMPRESS_NORMAL = 1024
+
+pattern ARRAY_FORMAT_COLOR :: Int
+
+pattern ARRAY_FORMAT_COLOR = 8
+
+pattern VIEWPORT_CLEAR_NEVER :: Int
+
+pattern VIEWPORT_CLEAR_NEVER = 1
+
+pattern TEXTURE_TYPE_2D_ARRAY :: Int
+
+pattern TEXTURE_TYPE_2D_ARRAY = 2
+
+pattern INSTANCE_GEOMETRY_MASK :: Int
+
+pattern INSTANCE_GEOMETRY_MASK = 30
+
+pattern VIEWPORT_USAGE_2D :: Int
+
+pattern VIEWPORT_USAGE_2D = 0
+
+pattern INSTANCE_LIGHTMAP_CAPTURE :: Int
+
+pattern INSTANCE_LIGHTMAP_CAPTURE = 8
+
+pattern MULTIMESH_COLOR_FLOAT :: Int
+
+pattern MULTIMESH_COLOR_FLOAT = 2
+
+pattern LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS :: Int
+
+pattern LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS = 1
+
+pattern INSTANCE_IMMEDIATE :: Int
+
+pattern INSTANCE_IMMEDIATE = 3
+
+pattern CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE :: Int
+
+pattern CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE = 1
+
+pattern ARRAY_FORMAT_TEX_UV :: Int
+
+pattern ARRAY_FORMAT_TEX_UV = 16
+
+pattern CANVAS_OCCLUDER_POLYGON_CULL_DISABLED :: Int
+
+pattern CANVAS_OCCLUDER_POLYGON_CULL_DISABLED = 0
+
+pattern ARRAY_COMPRESS_VERTEX :: Int
+
+pattern ARRAY_COMPRESS_VERTEX = 512
+
+pattern SCENARIO_DEBUG_DISABLED :: Int
+
+pattern SCENARIO_DEBUG_DISABLED = 0
+
+pattern ENV_DOF_BLUR_QUALITY_HIGH :: Int
+
+pattern ENV_DOF_BLUR_QUALITY_HIGH = 2
+
+pattern LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL :: Int
+
+pattern LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL = 0
+
+pattern ARRAY_FORMAT_VERTEX :: Int
+
+pattern ARRAY_FORMAT_VERTEX = 1
+
+pattern SHADER_MAX :: Int
+
+pattern SHADER_MAX = 3
+
+pattern VIEWPORT_DEBUG_DRAW_DISABLED :: Int
+
+pattern VIEWPORT_DEBUG_DRAW_DISABLED = 0
+
+pattern CANVAS_ITEM_Z_MIN :: Int
+
+pattern CANVAS_ITEM_Z_MIN = -4096
+
+pattern VIEWPORT_MSAA_8X :: Int
+
+pattern VIEWPORT_MSAA_8X = 3
+
+pattern INFO_MATERIAL_CHANGES_IN_FRAME :: Int
+
+pattern INFO_MATERIAL_CHANGES_IN_FRAME = 2
+
+pattern MAX_GLOW_LEVELS :: Int
+
+pattern MAX_GLOW_LEVELS = 7
+
+pattern LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL :: Int
+
+pattern LIGHT_OMNI_SHADOW_DETAIL_HORIZONTAL = 1
+
+pattern TEXTURE_TYPE_CUBEMAP :: Int
+
+pattern TEXTURE_TYPE_CUBEMAP = 1
+
+pattern VIEWPORT_RENDER_INFO_SURFACE_CHANGES_IN_FRAME :: Int
+
+pattern VIEWPORT_RENDER_INFO_SURFACE_CHANGES_IN_FRAME = 4
+
+pattern ARRAY_COMPRESS_TEX_UV :: Int
+
+pattern ARRAY_COMPRESS_TEX_UV = 8192
+
+pattern ARRAY_COMPRESS_BONES :: Int
+
+pattern ARRAY_COMPRESS_BONES = 32768
+
+pattern REFLECTION_PROBE_UPDATE_ALWAYS :: Int
+
+pattern REFLECTION_PROBE_UPDATE_ALWAYS = 1
+
+pattern VIEWPORT_MSAA_DISABLED :: Int
+
+pattern VIEWPORT_MSAA_DISABLED = 0
+
+pattern CUBEMAP_RIGHT :: Int
+
+pattern CUBEMAP_RIGHT = 1
+
+pattern ARRAY_MAX :: Int
+
+pattern ARRAY_MAX = 9
+
+pattern LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET :: Int
+
+pattern LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET = 10
+
+pattern ENV_TONE_MAPPER_FILMIC :: Int
+
+pattern ENV_TONE_MAPPER_FILMIC = 2
+
+pattern PARTICLES_DRAW_ORDER_LIFETIME :: Int
+
+pattern PARTICLES_DRAW_ORDER_LIFETIME = 1
+
+pattern NINE_PATCH_STRETCH :: Int
+
+pattern NINE_PATCH_STRETCH = 0
+
+pattern INFO_USAGE_VIDEO_MEM_TOTAL :: Int
+
+pattern INFO_USAGE_VIDEO_MEM_TOTAL = 6
+
+pattern ARRAY_NORMAL :: Int
+
+pattern ARRAY_NORMAL = 1
+
+pattern MULTIMESH_COLOR_NONE :: Int
+
+pattern MULTIMESH_COLOR_NONE = 0
+
+pattern ARRAY_FORMAT_TEX_UV2 :: Int
+
+pattern ARRAY_FORMAT_TEX_UV2 = 32
+
+pattern ENV_SSAO_QUALITY_LOW :: Int
+
+pattern ENV_SSAO_QUALITY_LOW = 0
+
+pattern INSTANCE_MESH :: Int
+
+pattern INSTANCE_MESH = 1
+
+pattern MATERIAL_RENDER_PRIORITY_MAX :: Int
+
+pattern MATERIAL_RENDER_PRIORITY_MAX = 127
+
+pattern LIGHT_PARAM_SHADOW_MAX_DISTANCE :: Int
+
+pattern LIGHT_PARAM_SHADOW_MAX_DISTANCE = 8
+
+pattern VIEWPORT_MSAA_2X :: Int
+
+pattern VIEWPORT_MSAA_2X = 1
+
+pattern PARTICLES_DRAW_ORDER_INDEX :: Int
+
+pattern PARTICLES_DRAW_ORDER_INDEX = 0
+
+pattern ENV_DOF_BLUR_QUALITY_LOW :: Int
+
+pattern ENV_DOF_BLUR_QUALITY_LOW = 0
+
+pattern INFO_SHADER_CHANGES_IN_FRAME :: Int
+
+pattern INFO_SHADER_CHANGES_IN_FRAME = 3
+
+pattern GLOW_BLEND_MODE_ADDITIVE :: Int
+
+pattern GLOW_BLEND_MODE_ADDITIVE = 0
+
+pattern ENV_BG_CANVAS :: Int
+
+pattern ENV_BG_CANVAS = 4
+
+pattern LIGHT_OMNI_SHADOW_DUAL_PARABOLOID :: Int
+
+pattern LIGHT_OMNI_SHADOW_DUAL_PARABOLOID = 0
+
+pattern ARRAY_INDEX :: Int
+
+pattern ARRAY_INDEX = 8
+
+pattern LIGHT_PARAM_ENERGY :: Int
+
+pattern LIGHT_PARAM_ENERGY = 0
+
+pattern ARRAY_COLOR :: Int
+
+pattern ARRAY_COLOR = 3
+
+pattern LIGHT_OMNI_SHADOW_CUBE :: Int
+
+pattern LIGHT_OMNI_SHADOW_CUBE = 1
+
+pattern PRIMITIVE_TRIANGLE_STRIP :: Int
+
+pattern PRIMITIVE_TRIANGLE_STRIP = 5
+
+pattern VIEWPORT_RENDER_INFO_MAX :: Int
+
+pattern VIEWPORT_RENDER_INFO_MAX = 6
+
+pattern PRIMITIVE_TRIANGLES :: Int
+
+pattern PRIMITIVE_TRIANGLES = 4
+
+pattern TEXTURE_FLAGS_DEFAULT :: Int
+
+pattern TEXTURE_FLAGS_DEFAULT = 7
+
+pattern VIEWPORT_USAGE_3D_NO_EFFECTS :: Int
+
+pattern VIEWPORT_USAGE_3D_NO_EFFECTS = 3
+
+pattern ARRAY_TEX_UV :: Int
+
+pattern ARRAY_TEX_UV = 4
+
+pattern VIEWPORT_CLEAR_ONLY_NEXT_FRAME :: Int
+
+pattern VIEWPORT_CLEAR_ONLY_NEXT_FRAME = 2
+
+pattern CANVAS_LIGHT_FILTER_PCF7 :: Int
+
+pattern CANVAS_LIGHT_FILTER_PCF7 = 3
+
+pattern BLEND_SHAPE_MODE_NORMALIZED :: Int
+
+pattern BLEND_SHAPE_MODE_NORMALIZED = 0
+
+pattern ENV_BG_COLOR_SKY :: Int
+
+pattern ENV_BG_COLOR_SKY = 3
+
+pattern PRIMITIVE_LINE_LOOP :: Int
+
+pattern PRIMITIVE_LINE_LOOP = 3
+
+pattern LIGHT_PARAM_SPECULAR :: Int
+
+pattern LIGHT_PARAM_SPECULAR = 2
+
+pattern CANVAS_LIGHT_MODE_SUB :: Int
+
+pattern CANVAS_LIGHT_MODE_SUB = 1
+
+pattern VIEWPORT_USAGE_3D :: Int
+
+pattern VIEWPORT_USAGE_3D = 2
+
+pattern GLOW_BLEND_MODE_SOFTLIGHT :: Int
+
+pattern GLOW_BLEND_MODE_SOFTLIGHT = 2
+
+pattern PRIMITIVE_TRIANGLE_FAN :: Int
+
+pattern PRIMITIVE_TRIANGLE_FAN = 6
+
+pattern VIEWPORT_DEBUG_DRAW_UNSHADED :: Int
+
+pattern VIEWPORT_DEBUG_DRAW_UNSHADED = 1
+
+pattern MATERIAL_RENDER_PRIORITY_MIN :: Int
+
+pattern MATERIAL_RENDER_PRIORITY_MIN = -128
+
+pattern LIGHT_OMNI_SHADOW_DETAIL_VERTICAL :: Int
+
+pattern LIGHT_OMNI_SHADOW_DETAIL_VERTICAL = 0
+
+pattern INSTANCE_FLAG_MAX :: Int
+
+pattern INSTANCE_FLAG_MAX = 2
+
+pattern MULTIMESH_TRANSFORM_3D :: Int
+
+pattern MULTIMESH_TRANSFORM_3D = 1
+
+pattern SCENARIO_DEBUG_OVERDRAW :: Int
+
+pattern SCENARIO_DEBUG_OVERDRAW = 2
+
+pattern ARRAY_FORMAT_NORMAL :: Int
+
+pattern ARRAY_FORMAT_NORMAL = 2
+
+pattern ARRAY_TEX_UV2 :: Int
+
+pattern ARRAY_TEX_UV2 = 5
+
+pattern ENV_DOF_BLUR_QUALITY_MEDIUM :: Int
+
+pattern ENV_DOF_BLUR_QUALITY_MEDIUM = 1
+
+pattern TEXTURE_TYPE_2D :: Int
+
+pattern TEXTURE_TYPE_2D = 0
+
+pattern ENV_BG_SKY :: Int
+
+pattern ENV_BG_SKY = 2
+
+pattern FEATURE_SHADERS :: Int
+
+pattern FEATURE_SHADERS = 0
+
+pattern CUBEMAP_TOP :: Int
+
+pattern CUBEMAP_TOP = 3
+
+pattern PARTICLES_DRAW_ORDER_VIEW_DEPTH :: Int
+
+pattern PARTICLES_DRAW_ORDER_VIEW_DEPTH = 2
+
+pattern CUBEMAP_BACK :: Int
+
+pattern CUBEMAP_BACK = 5
+
+pattern LIGHT_SPOT :: Int
+
+pattern LIGHT_SPOT = 2
+
+pattern LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS :: Int
+
+pattern LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS = 2
+
+pattern INSTANCE_PARTICLES :: Int
+
+pattern INSTANCE_PARTICLES = 4
+
+pattern TEXTURE_FLAG_REPEAT :: Int
+
+pattern TEXTURE_FLAG_REPEAT = 2
+
+pattern LIGHT_PARAM_SPOT_ATTENUATION :: Int
+
+pattern LIGHT_PARAM_SPOT_ATTENUATION = 6
+
+pattern REFLECTION_PROBE_UPDATE_ONCE :: Int
+
+pattern REFLECTION_PROBE_UPDATE_ONCE = 0
+
+pattern ARRAY_COMPRESS_DEFAULT :: Int
+
+pattern ARRAY_COMPRESS_DEFAULT = 97280
+
+pattern CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE :: Int
+
+pattern CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE = 2
+
+pattern CANVAS_ITEM_Z_MAX :: Int
+
+pattern CANVAS_ITEM_Z_MAX = 4096
+
+pattern ENV_TONE_MAPPER_LINEAR :: Int
+
+pattern ENV_TONE_MAPPER_LINEAR = 0
+
+pattern LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET :: Int
+
+pattern LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET = 11
+
+pattern VIEWPORT_RENDER_INFO_VERTICES_IN_FRAME :: Int
+
+pattern VIEWPORT_RENDER_INFO_VERTICES_IN_FRAME = 1
+
+pattern LIGHT_OMNI :: Int
+
+pattern LIGHT_OMNI = 1
+
+pattern ENV_BG_MAX :: Int
+
+pattern ENV_BG_MAX = 6
+
+pattern INSTANCE_REFLECTION_PROBE :: Int
+
+pattern INSTANCE_REFLECTION_PROBE = 6
+
+pattern INFO_TEXTURE_MEM_USED :: Int
+
+pattern INFO_TEXTURE_MEM_USED = 8
+
+pattern INSTANCE_NONE :: Int
+
+pattern INSTANCE_NONE = 0
+
+pattern SHADER_CANVAS_ITEM :: Int
+
+pattern SHADER_CANVAS_ITEM = 1
+
+pattern ENV_SSAO_QUALITY_MEDIUM :: Int
+
+pattern ENV_SSAO_QUALITY_MEDIUM = 1
+
+pattern CANVAS_LIGHT_FILTER_PCF3 :: Int
+
+pattern CANVAS_LIGHT_FILTER_PCF3 = 1
+
+pattern ARRAY_FORMAT_BONES :: Int
+
+pattern ARRAY_FORMAT_BONES = 64
+
+pattern LIGHT_PARAM_SPOT_ANGLE :: Int
+
+pattern LIGHT_PARAM_SPOT_ANGLE = 5
+
+pattern ARRAY_WEIGHTS_SIZE :: Int
+
+pattern ARRAY_WEIGHTS_SIZE = 4
+
+pattern SHADOW_CASTING_SETTING_DOUBLE_SIDED :: Int
+
+pattern SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2
+
+pattern ENV_SSAO_QUALITY_HIGH :: Int
+
+pattern ENV_SSAO_QUALITY_HIGH = 2
+
+pattern INFO_VERTICES_IN_FRAME :: Int
+
+pattern INFO_VERTICES_IN_FRAME = 1
+
+pattern INFO_VIDEO_MEM_USED :: Int
+
+pattern INFO_VIDEO_MEM_USED = 7
+
+pattern GLOW_BLEND_MODE_REPLACE :: Int
+
+pattern GLOW_BLEND_MODE_REPLACE = 3
+
+pattern NINE_PATCH_TILE_FIT :: Int
+
+pattern NINE_PATCH_TILE_FIT = 2
+
+pattern VIEWPORT_UPDATE_ONCE :: Int
+
+pattern VIEWPORT_UPDATE_ONCE = 1
+
+pattern ARRAY_COMPRESS_COLOR :: Int
+
+pattern ARRAY_COMPRESS_COLOR = 4096
+
+pattern GLOW_BLEND_MODE_SCREEN :: Int
+
+pattern GLOW_BLEND_MODE_SCREEN = 1
+
+pattern MAX_CURSORS :: Int
+
+pattern MAX_CURSORS = 8
+
+pattern TEXTURE_FLAG_CONVERT_TO_LINEAR :: Int
+
+pattern TEXTURE_FLAG_CONVERT_TO_LINEAR = 16
+
+pattern PRIMITIVE_MAX :: Int
+
+pattern PRIMITIVE_MAX = 7
+
+pattern LIGHT_PARAM_CONTACT_SHADOW_SIZE :: Int
+
+pattern LIGHT_PARAM_CONTACT_SHADOW_SIZE = 7
+
+pattern INSTANCE_MAX :: Int
+
+pattern INSTANCE_MAX = 9
+
+pattern ENV_SSAO_BLUR_3x3 :: Int
+
+pattern ENV_SSAO_BLUR_3x3 = 3
+
+pattern ARRAY_WEIGHTS :: Int
+
+pattern ARRAY_WEIGHTS = 7
+
+pattern LIGHT_PARAM_MAX :: Int
+
+pattern LIGHT_PARAM_MAX = 15
+
+pattern CUBEMAP_BOTTOM :: Int
+
+pattern CUBEMAP_BOTTOM = 2
+
+pattern ARRAY_TANGENT :: Int
+
+pattern ARRAY_TANGENT = 2
+
+pattern SCENARIO_DEBUG_SHADELESS :: Int
+
+pattern SCENARIO_DEBUG_SHADELESS = 3
+
+pattern INFO_OBJECTS_IN_FRAME :: Int
+
+pattern INFO_OBJECTS_IN_FRAME = 0
+
+pattern INSTANCE_GI_PROBE :: Int
+
+pattern INSTANCE_GI_PROBE = 7
+
+pattern LIGHT_PARAM_SHADOW_NORMAL_BIAS :: Int
+
+pattern LIGHT_PARAM_SHADOW_NORMAL_BIAS = 12
+
+pattern VIEWPORT_USAGE_2D_NO_SAMPLING :: Int
+
+pattern VIEWPORT_USAGE_2D_NO_SAMPLING = 1
+
+pattern ENV_SSAO_BLUR_2x2 :: Int
+
+pattern ENV_SSAO_BLUR_2x2 = 2
+
+pattern VIEWPORT_UPDATE_DISABLED :: Int
+
+pattern VIEWPORT_UPDATE_DISABLED = 0
+
+pattern SHADOW_CASTING_SETTING_OFF :: Int
+
+pattern SHADOW_CASTING_SETTING_OFF = 0
+
+pattern VIEWPORT_MSAA_16X :: Int
+
+pattern VIEWPORT_MSAA_16X = 4
+
+pattern CANVAS_LIGHT_FILTER_PCF9 :: Int
+
+pattern CANVAS_LIGHT_FILTER_PCF9 = 4
+
+pattern ENV_SSAO_BLUR_DISABLED :: Int
+
+pattern ENV_SSAO_BLUR_DISABLED = 0
+
+pattern TEXTURE_FLAG_ANISOTROPIC_FILTER :: Int
+
+pattern TEXTURE_FLAG_ANISOTROPIC_FILTER = 8
+
+pattern FEATURE_MULTITHREADED :: Int
+
+pattern FEATURE_MULTITHREADED = 1
+
+pattern ENV_SSAO_BLUR_1x1 :: Int
+
+pattern ENV_SSAO_BLUR_1x1 = 1
+
+pattern INFO_DRAW_CALLS_IN_FRAME :: Int
+
+pattern INFO_DRAW_CALLS_IN_FRAME = 5
+
+pattern ENV_BG_COLOR :: Int
+
+pattern ENV_BG_COLOR = 1
+
+pattern ENV_TONE_MAPPER_ACES :: Int
+
+pattern ENV_TONE_MAPPER_ACES = 3
+
+pattern LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE :: Int
+
+pattern LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE = 0
+
+pattern LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_OPTIMIZED :: Int
+
+pattern LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_OPTIMIZED = 1
+
+pattern ARRAY_COMPRESS_TEX_UV2 :: Int
+
+pattern ARRAY_COMPRESS_TEX_UV2 = 16384
+
+pattern MULTIMESH_COLOR_8BIT :: Int
+
+pattern MULTIMESH_COLOR_8BIT = 1
+
+pattern MULTIMESH_TRANSFORM_2D :: Int
+
+pattern MULTIMESH_TRANSFORM_2D = 0
+
+pattern VIEWPORT_UPDATE_WHEN_VISIBLE :: Int
+
+pattern VIEWPORT_UPDATE_WHEN_VISIBLE = 2
+
+pattern INSTANCE_LIGHT :: Int
+
+pattern INSTANCE_LIGHT = 5
+
+pattern TEXTURE_TYPE_3D :: Int
+
+pattern TEXTURE_TYPE_3D = 3
+
+pattern TEXTURE_FLAG_MIPMAPS :: Int
+
+pattern TEXTURE_FLAG_MIPMAPS = 1
+
+pattern PRIMITIVE_LINE_STRIP :: Int
+
+pattern PRIMITIVE_LINE_STRIP = 2
+
+pattern TEXTURE_FLAG_FILTER :: Int
+
+pattern TEXTURE_FLAG_FILTER = 4
+
+pattern ENV_BG_KEEP :: Int
+
+pattern ENV_BG_KEEP = 5
+
+pattern CANVAS_LIGHT_FILTER_NONE :: Int
+
+pattern CANVAS_LIGHT_FILTER_NONE = 0
+
+pattern CUBEMAP_FRONT :: Int
+
+pattern CUBEMAP_FRONT = 4
+
+pattern TEXTURE_FLAG_USED_FOR_STREAMING :: Int
+
+pattern TEXTURE_FLAG_USED_FOR_STREAMING = 2048
+
+pattern INFO_VERTEX_MEM_USED :: Int
+
+pattern INFO_VERTEX_MEM_USED = 9
+
+pattern TEXTURE_FLAG_MIRRORED_REPEAT :: Int
+
+pattern TEXTURE_FLAG_MIRRORED_REPEAT = 32
+
+pattern PRIMITIVE_LINES :: Int
+
+pattern PRIMITIVE_LINES = 1
+
+pattern VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME :: Int
+
+pattern VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME = 0
+
+pattern ENV_BG_CLEAR_COLOR :: Int
+
+pattern ENV_BG_CLEAR_COLOR = 0
+
+pattern SHADOW_CASTING_SETTING_ON :: Int
+
+pattern SHADOW_CASTING_SETTING_ON = 1
+
+pattern SCENARIO_DEBUG_WIREFRAME :: Int
+
+pattern SCENARIO_DEBUG_WIREFRAME = 1
+
+pattern CANVAS_LIGHT_MODE_ADD :: Int
+
+pattern CANVAS_LIGHT_MODE_ADD = 0
+
+pattern LIGHT_PARAM_SHADOW_BIAS_SPLIT_SCALE :: Int
+
+pattern LIGHT_PARAM_SHADOW_BIAS_SPLIT_SCALE = 14
+
+pattern VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME :: Int
+
+pattern VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME = 5
+
+pattern ARRAY_BONES :: Int
+
+pattern ARRAY_BONES = 6
+
+pattern LIGHT_PARAM_ATTENUATION :: Int
+
+pattern LIGHT_PARAM_ATTENUATION = 4
+
+pattern VIEWPORT_DEBUG_DRAW_WIREFRAME :: Int
+
+pattern VIEWPORT_DEBUG_DRAW_WIREFRAME = 3
+
+pattern CANVAS_LIGHT_MODE_MIX :: Int
+
+pattern CANVAS_LIGHT_MODE_MIX = 2
+
+pattern NINE_PATCH_TILE :: Int
+
+pattern NINE_PATCH_TILE = 1
+
+pattern VIEWPORT_RENDER_INFO_SHADER_CHANGES_IN_FRAME :: Int
+
+pattern VIEWPORT_RENDER_INFO_SHADER_CHANGES_IN_FRAME = 3
+
+pattern INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE :: Int
+
+pattern INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE = 1
+
+pattern CANVAS_LIGHT_MODE_MASK :: Int
+
+pattern CANVAS_LIGHT_MODE_MASK = 3
+
+pattern LIGHT_PARAM_RANGE :: Int
+
+pattern LIGHT_PARAM_RANGE = 3
+
+pattern BLEND_SHAPE_MODE_RELATIVE :: Int
+
+pattern BLEND_SHAPE_MODE_RELATIVE = 1
+
+pattern VIEWPORT_MSAA_4X :: Int
+
+pattern VIEWPORT_MSAA_4X = 2
+
+pattern LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET :: Int
+
+pattern LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET = 9
+
+pattern ENV_TONE_MAPPER_REINHARD :: Int
+
+pattern ENV_TONE_MAPPER_REINHARD = 1
+
+pattern CANVAS_LIGHT_FILTER_PCF13 :: Int
+
+pattern CANVAS_LIGHT_FILTER_PCF13 = 5
+
+pattern NO_INDEX_ARRAY :: Int
+
+pattern NO_INDEX_ARRAY = -1
+
+pattern ARRAY_VERTEX :: Int
+
+pattern ARRAY_VERTEX = 0
+
+pattern ARRAY_FLAG_USE_2D_VERTICES :: Int
+
+pattern ARRAY_FLAG_USE_2D_VERTICES = 262144
+
+pattern CANVAS_LIGHT_FILTER_PCF5 :: Int
+
+pattern CANVAS_LIGHT_FILTER_PCF5 = 2
+
+pattern LIGHT_DIRECTIONAL :: Int
+
+pattern LIGHT_DIRECTIONAL = 0
+
+pattern ARRAY_COMPRESS_INDEX :: Int
+
+pattern ARRAY_COMPRESS_INDEX = 131072
+
+pattern INSTANCE_FLAG_USE_BAKED_LIGHT :: Int
+
+pattern INSTANCE_FLAG_USE_BAKED_LIGHT = 0
+
+pattern CUBEMAP_LEFT :: Int
+
+pattern CUBEMAP_LEFT = 0
+
+pattern LIGHT_PARAM_SHADOW_BIAS :: Int
+
+pattern LIGHT_PARAM_SHADOW_BIAS = 13
+
+pattern ARRAY_FORMAT_WEIGHTS :: Int
+
+pattern ARRAY_FORMAT_WEIGHTS = 128
+
+pattern SHADER_PARTICLES :: Int
+
+pattern SHADER_PARTICLES = 2
+
+pattern ARRAY_FORMAT_TANGENT :: Int
+
+pattern ARRAY_FORMAT_TANGENT = 4
+
+pattern PRIMITIVE_POINTS :: Int
+
+pattern PRIMITIVE_POINTS = 0
+
+frame_post_draw :: Signal GodotVisualServer
+frame_post_draw = Signal "frame_post_draw"
+
+frame_pre_draw :: Signal GodotVisualServer
+frame_pre_draw = Signal "frame_pre_draw"
diff --git a/src/Godot/Core/GodotVisualShader.hs b/src/Godot/Core/GodotVisualShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShader.hs
@@ -0,0 +1,32 @@
+module Godot.Core.GodotVisualShader where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern NODE_ID_INVALID :: Int
+
+pattern NODE_ID_INVALID = -1
+
+pattern TYPE_VERTEX :: Int
+
+pattern TYPE_VERTEX = 0
+
+pattern TYPE_FRAGMENT :: Int
+
+pattern TYPE_FRAGMENT = 1
+
+pattern NODE_ID_OUTPUT :: Int
+
+pattern NODE_ID_OUTPUT = 0
+
+pattern TYPE_MAX :: Int
+
+pattern TYPE_MAX = 3
+
+pattern TYPE_LIGHT :: Int
+
+pattern TYPE_LIGHT = 2
diff --git a/src/Godot/Core/GodotVisualShaderNode.hs b/src/Godot/Core/GodotVisualShaderNode.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNode.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotVisualShaderNode where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+editor_refresh_request :: Signal GodotVisualShaderNode
+editor_refresh_request = Signal "editor_refresh_request"
diff --git a/src/Godot/Core/GodotVisualShaderNodeColorConstant.hs b/src/Godot/Core/GodotVisualShaderNodeColorConstant.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeColorConstant.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeColorConstant where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeColorOp.hs b/src/Godot/Core/GodotVisualShaderNodeColorOp.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeColorOp.hs
@@ -0,0 +1,44 @@
+module Godot.Core.GodotVisualShaderNodeColorOp where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern OP_SCREEN :: Int
+
+pattern OP_SCREEN = 0
+
+pattern OP_SOFT_LIGHT :: Int
+
+pattern OP_SOFT_LIGHT = 7
+
+pattern OP_DODGE :: Int
+
+pattern OP_DODGE = 5
+
+pattern OP_BURN :: Int
+
+pattern OP_BURN = 6
+
+pattern OP_HARD_LIGHT :: Int
+
+pattern OP_HARD_LIGHT = 8
+
+pattern OP_DARKEN :: Int
+
+pattern OP_DARKEN = 2
+
+pattern OP_DIFFERENCE :: Int
+
+pattern OP_DIFFERENCE = 1
+
+pattern OP_OVERLAY :: Int
+
+pattern OP_OVERLAY = 4
+
+pattern OP_LIGHTEN :: Int
+
+pattern OP_LIGHTEN = 3
diff --git a/src/Godot/Core/GodotVisualShaderNodeColorUniform.hs b/src/Godot/Core/GodotVisualShaderNodeColorUniform.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeColorUniform.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeColorUniform where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeCubeMap.hs b/src/Godot/Core/GodotVisualShaderNodeCubeMap.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeCubeMap.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotVisualShaderNodeCubeMap where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern TYPE_DATA :: Int
+
+pattern TYPE_DATA = 0
+
+pattern TYPE_COLOR :: Int
+
+pattern TYPE_COLOR = 1
+
+pattern TYPE_NORMALMAP :: Int
+
+pattern TYPE_NORMALMAP = 2
diff --git a/src/Godot/Core/GodotVisualShaderNodeCubeMapUniform.hs b/src/Godot/Core/GodotVisualShaderNodeCubeMapUniform.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeCubeMapUniform.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeCubeMapUniform where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeDotProduct.hs b/src/Godot/Core/GodotVisualShaderNodeDotProduct.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeDotProduct.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeDotProduct where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeInput.hs b/src/Godot/Core/GodotVisualShaderNodeInput.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeInput.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotVisualShaderNodeInput where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+input_type_changed :: Signal GodotVisualShaderNodeInput
+input_type_changed = Signal "input_type_changed"
diff --git a/src/Godot/Core/GodotVisualShaderNodeOutput.hs b/src/Godot/Core/GodotVisualShaderNodeOutput.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeOutput.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeOutput where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeScalarConstant.hs b/src/Godot/Core/GodotVisualShaderNodeScalarConstant.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeScalarConstant.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeScalarConstant where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeScalarFunc.hs b/src/Godot/Core/GodotVisualShaderNodeScalarFunc.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeScalarFunc.hs
@@ -0,0 +1,88 @@
+module Godot.Core.GodotVisualShaderNodeScalarFunc where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FUNC_TAN :: Int
+
+pattern FUNC_TAN = 2
+
+pattern FUNC_SQRT :: Int
+
+pattern FUNC_SQRT = 11
+
+pattern FUNC_ATAN :: Int
+
+pattern FUNC_ATAN = 5
+
+pattern FUNC_COS :: Int
+
+pattern FUNC_COS = 1
+
+pattern FUNC_ASIN :: Int
+
+pattern FUNC_ASIN = 3
+
+pattern FUNC_EXP :: Int
+
+pattern FUNC_EXP = 10
+
+pattern FUNC_ACOS :: Int
+
+pattern FUNC_ACOS = 4
+
+pattern FUNC_FRAC :: Int
+
+pattern FUNC_FRAC = 17
+
+pattern FUNC_SIGN :: Int
+
+pattern FUNC_SIGN = 13
+
+pattern FUNC_TANH :: Int
+
+pattern FUNC_TANH = 8
+
+pattern FUNC_CEIL :: Int
+
+pattern FUNC_CEIL = 16
+
+pattern FUNC_LOG :: Int
+
+pattern FUNC_LOG = 9
+
+pattern FUNC_SINH :: Int
+
+pattern FUNC_SINH = 6
+
+pattern FUNC_NEGATE :: Int
+
+pattern FUNC_NEGATE = 19
+
+pattern FUNC_SIN :: Int
+
+pattern FUNC_SIN = 0
+
+pattern FUNC_SATURATE :: Int
+
+pattern FUNC_SATURATE = 18
+
+pattern FUNC_ROUND :: Int
+
+pattern FUNC_ROUND = 15
+
+pattern FUNC_COSH :: Int
+
+pattern FUNC_COSH = 7
+
+pattern FUNC_ABS :: Int
+
+pattern FUNC_ABS = 12
+
+pattern FUNC_FLOOR :: Int
+
+pattern FUNC_FLOOR = 14
diff --git a/src/Godot/Core/GodotVisualShaderNodeScalarInterp.hs b/src/Godot/Core/GodotVisualShaderNodeScalarInterp.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeScalarInterp.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeScalarInterp where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeScalarOp.hs b/src/Godot/Core/GodotVisualShaderNodeScalarOp.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeScalarOp.hs
@@ -0,0 +1,44 @@
+module Godot.Core.GodotVisualShaderNodeScalarOp where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern OP_MUL :: Int
+
+pattern OP_MUL = 2
+
+pattern OP_SUB :: Int
+
+pattern OP_SUB = 1
+
+pattern OP_MAX :: Int
+
+pattern OP_MAX = 6
+
+pattern OP_POW :: Int
+
+pattern OP_POW = 5
+
+pattern OP_MOD :: Int
+
+pattern OP_MOD = 4
+
+pattern OP_ADD :: Int
+
+pattern OP_ADD = 0
+
+pattern OP_MIN :: Int
+
+pattern OP_MIN = 7
+
+pattern OP_ATAN2 :: Int
+
+pattern OP_ATAN2 = 8
+
+pattern OP_DIV :: Int
+
+pattern OP_DIV = 3
diff --git a/src/Godot/Core/GodotVisualShaderNodeScalarUniform.hs b/src/Godot/Core/GodotVisualShaderNodeScalarUniform.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeScalarUniform.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeScalarUniform where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeTexture.hs b/src/Godot/Core/GodotVisualShaderNodeTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeTexture.hs
@@ -0,0 +1,36 @@
+module Godot.Core.GodotVisualShaderNodeTexture where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern TYPE_DATA :: Int
+
+pattern TYPE_DATA = 0
+
+pattern SOURCE_2D_NORMAL :: Int
+
+pattern SOURCE_2D_NORMAL = 3
+
+pattern SOURCE_SCREEN :: Int
+
+pattern SOURCE_SCREEN = 1
+
+pattern SOURCE_2D_TEXTURE :: Int
+
+pattern SOURCE_2D_TEXTURE = 2
+
+pattern TYPE_COLOR :: Int
+
+pattern TYPE_COLOR = 1
+
+pattern SOURCE_TEXTURE :: Int
+
+pattern SOURCE_TEXTURE = 0
+
+pattern TYPE_NORMALMAP :: Int
+
+pattern TYPE_NORMALMAP = 2
diff --git a/src/Godot/Core/GodotVisualShaderNodeTextureUniform.hs b/src/Godot/Core/GodotVisualShaderNodeTextureUniform.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeTextureUniform.hs
@@ -0,0 +1,32 @@
+module Godot.Core.GodotVisualShaderNodeTextureUniform where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern TYPE_DATA :: Int
+
+pattern TYPE_DATA = 0
+
+pattern TYPE_ANISO :: Int
+
+pattern TYPE_ANISO = 3
+
+pattern COLOR_DEFAULT_WHITE :: Int
+
+pattern COLOR_DEFAULT_WHITE = 0
+
+pattern TYPE_COLOR :: Int
+
+pattern TYPE_COLOR = 1
+
+pattern TYPE_NORMALMAP :: Int
+
+pattern TYPE_NORMALMAP = 2
+
+pattern COLOR_DEFAULT_BLACK :: Int
+
+pattern COLOR_DEFAULT_BLACK = 1
diff --git a/src/Godot/Core/GodotVisualShaderNodeTransformCompose.hs b/src/Godot/Core/GodotVisualShaderNodeTransformCompose.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeTransformCompose.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeTransformCompose where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeTransformConstant.hs b/src/Godot/Core/GodotVisualShaderNodeTransformConstant.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeTransformConstant.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeTransformConstant where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeTransformDecompose.hs b/src/Godot/Core/GodotVisualShaderNodeTransformDecompose.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeTransformDecompose.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeTransformDecompose where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeTransformMult.hs b/src/Godot/Core/GodotVisualShaderNodeTransformMult.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeTransformMult.hs
@@ -0,0 +1,16 @@
+module Godot.Core.GodotVisualShaderNodeTransformMult where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern OP_AxB :: Int
+
+pattern OP_AxB = 0
+
+pattern OP_BxA :: Int
+
+pattern OP_BxA = 1
diff --git a/src/Godot/Core/GodotVisualShaderNodeTransformUniform.hs b/src/Godot/Core/GodotVisualShaderNodeTransformUniform.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeTransformUniform.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeTransformUniform where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeTransformVecMult.hs b/src/Godot/Core/GodotVisualShaderNodeTransformVecMult.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeTransformVecMult.hs
@@ -0,0 +1,24 @@
+module Godot.Core.GodotVisualShaderNodeTransformVecMult where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern OP_AxB :: Int
+
+pattern OP_AxB = 0
+
+pattern OP_BxA :: Int
+
+pattern OP_BxA = 1
+
+pattern OP_3x3_BxA :: Int
+
+pattern OP_3x3_BxA = 3
+
+pattern OP_3x3_AxB :: Int
+
+pattern OP_3x3_AxB = 2
diff --git a/src/Godot/Core/GodotVisualShaderNodeUniform.hs b/src/Godot/Core/GodotVisualShaderNodeUniform.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeUniform.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeUniform where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeVec3Constant.hs b/src/Godot/Core/GodotVisualShaderNodeVec3Constant.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeVec3Constant.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeVec3Constant where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeVec3Uniform.hs b/src/Godot/Core/GodotVisualShaderNodeVec3Uniform.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeVec3Uniform.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeVec3Uniform where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeVectorCompose.hs b/src/Godot/Core/GodotVisualShaderNodeVectorCompose.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeVectorCompose.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeVectorCompose where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeVectorDecompose.hs b/src/Godot/Core/GodotVisualShaderNodeVectorDecompose.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeVectorDecompose.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeVectorDecompose where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeVectorFunc.hs b/src/Godot/Core/GodotVisualShaderNodeVectorFunc.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeVectorFunc.hs
@@ -0,0 +1,32 @@
+module Godot.Core.GodotVisualShaderNodeVectorFunc where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FUNC_NORMALIZE :: Int
+
+pattern FUNC_NORMALIZE = 0
+
+pattern FUNC_RECIPROCAL :: Int
+
+pattern FUNC_RECIPROCAL = 3
+
+pattern FUNC_HSV2RGB :: Int
+
+pattern FUNC_HSV2RGB = 5
+
+pattern FUNC_RGB2HSV :: Int
+
+pattern FUNC_RGB2HSV = 4
+
+pattern FUNC_NEGATE :: Int
+
+pattern FUNC_NEGATE = 2
+
+pattern FUNC_SATURATE :: Int
+
+pattern FUNC_SATURATE = 1
diff --git a/src/Godot/Core/GodotVisualShaderNodeVectorInterp.hs b/src/Godot/Core/GodotVisualShaderNodeVectorInterp.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeVectorInterp.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeVectorInterp where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeVectorLen.hs b/src/Godot/Core/GodotVisualShaderNodeVectorLen.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeVectorLen.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotVisualShaderNodeVectorLen where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotVisualShaderNodeVectorOp.hs b/src/Godot/Core/GodotVisualShaderNodeVectorOp.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotVisualShaderNodeVectorOp.hs
@@ -0,0 +1,44 @@
+module Godot.Core.GodotVisualShaderNodeVectorOp where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern OP_MUL :: Int
+
+pattern OP_MUL = 2
+
+pattern OP_SUB :: Int
+
+pattern OP_SUB = 1
+
+pattern OP_MAX :: Int
+
+pattern OP_MAX = 6
+
+pattern OP_POW :: Int
+
+pattern OP_POW = 5
+
+pattern OP_MOD :: Int
+
+pattern OP_MOD = 4
+
+pattern OP_ADD :: Int
+
+pattern OP_ADD = 0
+
+pattern OP_MIN :: Int
+
+pattern OP_MIN = 7
+
+pattern OP_DIV :: Int
+
+pattern OP_DIV = 3
+
+pattern OP_CROSS :: Int
+
+pattern OP_CROSS = 8
diff --git a/src/Godot/Core/GodotWeakRef.hs b/src/Godot/Core/GodotWeakRef.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotWeakRef.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotWeakRef where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotWebSocketClient.hs b/src/Godot/Core/GodotWebSocketClient.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotWebSocketClient.hs
@@ -0,0 +1,23 @@
+module Godot.Core.GodotWebSocketClient where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+server_close_request :: Signal GodotWebSocketClient
+server_close_request = Signal "server_close_request"
+
+connection_established :: Signal GodotWebSocketClient
+connection_established = Signal "connection_established"
+
+data_received :: Signal GodotWebSocketClient
+data_received = Signal "data_received"
+
+connection_error :: Signal GodotWebSocketClient
+connection_error = Signal "connection_error"
+
+connection_closed :: Signal GodotWebSocketClient
+connection_closed = Signal "connection_closed"
diff --git a/src/Godot/Core/GodotWebSocketMultiplayerPeer.hs b/src/Godot/Core/GodotWebSocketMultiplayerPeer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotWebSocketMultiplayerPeer.hs
@@ -0,0 +1,11 @@
+module Godot.Core.GodotWebSocketMultiplayerPeer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+peer_packet :: Signal GodotWebSocketMultiplayerPeer
+peer_packet = Signal "peer_packet"
diff --git a/src/Godot/Core/GodotWebSocketPeer.hs b/src/Godot/Core/GodotWebSocketPeer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotWebSocketPeer.hs
@@ -0,0 +1,16 @@
+module Godot.Core.GodotWebSocketPeer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern WRITE_MODE_TEXT :: Int
+
+pattern WRITE_MODE_TEXT = 0
+
+pattern WRITE_MODE_BINARY :: Int
+
+pattern WRITE_MODE_BINARY = 1
diff --git a/src/Godot/Core/GodotWebSocketServer.hs b/src/Godot/Core/GodotWebSocketServer.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotWebSocketServer.hs
@@ -0,0 +1,20 @@
+module Godot.Core.GodotWebSocketServer where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+client_close_request :: Signal GodotWebSocketServer
+client_close_request = Signal "client_close_request"
+
+data_received :: Signal GodotWebSocketServer
+data_received = Signal "data_received"
+
+client_connected :: Signal GodotWebSocketServer
+client_connected = Signal "client_connected"
+
+client_disconnected :: Signal GodotWebSocketServer
+client_disconnected = Signal "client_disconnected"
diff --git a/src/Godot/Core/GodotWindowDialog.hs b/src/Godot/Core/GodotWindowDialog.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotWindowDialog.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotWindowDialog where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotWorld.hs b/src/Godot/Core/GodotWorld.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotWorld.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotWorld where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotWorld2D.hs b/src/Godot/Core/GodotWorld2D.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotWorld2D.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotWorld2D where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotWorldEnvironment.hs b/src/Godot/Core/GodotWorldEnvironment.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotWorldEnvironment.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotWorldEnvironment where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/GodotXMLParser.hs b/src/Godot/Core/GodotXMLParser.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotXMLParser.hs
@@ -0,0 +1,36 @@
+module Godot.Core.GodotXMLParser where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern NODE_UNKNOWN :: Int
+
+pattern NODE_UNKNOWN = 6
+
+pattern NODE_ELEMENT :: Int
+
+pattern NODE_ELEMENT = 1
+
+pattern NODE_CDATA :: Int
+
+pattern NODE_CDATA = 5
+
+pattern NODE_COMMENT :: Int
+
+pattern NODE_COMMENT = 4
+
+pattern NODE_TEXT :: Int
+
+pattern NODE_TEXT = 3
+
+pattern NODE_NONE :: Int
+
+pattern NODE_NONE = 0
+
+pattern NODE_ELEMENT_END :: Int
+
+pattern NODE_ELEMENT_END = 2
diff --git a/src/Godot/Core/GodotYSort.hs b/src/Godot/Core/GodotYSort.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/GodotYSort.hs
@@ -0,0 +1,8 @@
+module Godot.Core.GodotYSort where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/Godot_ClassDB.hs b/src/Godot/Core/Godot_ClassDB.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_ClassDB.hs
@@ -0,0 +1,8 @@
+module Godot.Core.Godot_ClassDB where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/Godot_Directory.hs b/src/Godot/Core/Godot_Directory.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_Directory.hs
@@ -0,0 +1,8 @@
+module Godot.Core.Godot_Directory where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/Godot_Engine.hs b/src/Godot/Core/Godot_Engine.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_Engine.hs
@@ -0,0 +1,8 @@
+module Godot.Core.Godot_Engine where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/Godot_File.hs b/src/Godot/Core/Godot_File.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_File.hs
@@ -0,0 +1,40 @@
+module Godot.Core.Godot_File where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern COMPRESSION_DEFLATE :: Int
+
+pattern COMPRESSION_DEFLATE = 1
+
+pattern READ :: Int
+
+pattern READ = 1
+
+pattern WRITE :: Int
+
+pattern WRITE = 2
+
+pattern WRITE_READ :: Int
+
+pattern WRITE_READ = 7
+
+pattern READ_WRITE :: Int
+
+pattern READ_WRITE = 3
+
+pattern COMPRESSION_FASTLZ :: Int
+
+pattern COMPRESSION_FASTLZ = 0
+
+pattern COMPRESSION_GZIP :: Int
+
+pattern COMPRESSION_GZIP = 3
+
+pattern COMPRESSION_ZSTD :: Int
+
+pattern COMPRESSION_ZSTD = 2
diff --git a/src/Godot/Core/Godot_Geometry.hs b/src/Godot/Core/Godot_Geometry.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_Geometry.hs
@@ -0,0 +1,8 @@
+module Godot.Core.Godot_Geometry where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/Godot_JSON.hs b/src/Godot/Core/Godot_JSON.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_JSON.hs
@@ -0,0 +1,8 @@
+module Godot.Core.Godot_JSON where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/Godot_Marshalls.hs b/src/Godot/Core/Godot_Marshalls.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_Marshalls.hs
@@ -0,0 +1,8 @@
+module Godot.Core.Godot_Marshalls where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/Godot_Mutex.hs b/src/Godot/Core/Godot_Mutex.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_Mutex.hs
@@ -0,0 +1,8 @@
+module Godot.Core.Godot_Mutex where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/Godot_OS.hs b/src/Godot/Core/Godot_OS.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_OS.hs
@@ -0,0 +1,164 @@
+module Godot.Core.Godot_OS where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern POWERSTATE_NO_BATTERY :: Int
+
+pattern POWERSTATE_NO_BATTERY = 2
+
+pattern SCREEN_ORIENTATION_SENSOR_PORTRAIT :: Int
+
+pattern SCREEN_ORIENTATION_SENSOR_PORTRAIT = 5
+
+pattern SCREEN_ORIENTATION_SENSOR :: Int
+
+pattern SCREEN_ORIENTATION_SENSOR = 6
+
+pattern DAY_THURSDAY :: Int
+
+pattern DAY_THURSDAY = 4
+
+pattern POWERSTATE_UNKNOWN :: Int
+
+pattern POWERSTATE_UNKNOWN = 0
+
+pattern MONTH_MARCH :: Int
+
+pattern MONTH_MARCH = 3
+
+pattern DAY_FRIDAY :: Int
+
+pattern DAY_FRIDAY = 5
+
+pattern SYSTEM_DIR_DOWNLOADS :: Int
+
+pattern SYSTEM_DIR_DOWNLOADS = 3
+
+pattern MONTH_NOVEMBER :: Int
+
+pattern MONTH_NOVEMBER = 11
+
+pattern MONTH_JULY :: Int
+
+pattern MONTH_JULY = 7
+
+pattern SYSTEM_DIR_PICTURES :: Int
+
+pattern SYSTEM_DIR_PICTURES = 6
+
+pattern MONTH_DECEMBER :: Int
+
+pattern MONTH_DECEMBER = 12
+
+pattern DAY_TUESDAY :: Int
+
+pattern DAY_TUESDAY = 2
+
+pattern SYSTEM_DIR_DESKTOP :: Int
+
+pattern SYSTEM_DIR_DESKTOP = 0
+
+pattern DAY_MONDAY :: Int
+
+pattern DAY_MONDAY = 1
+
+pattern SYSTEM_DIR_MUSIC :: Int
+
+pattern SYSTEM_DIR_MUSIC = 5
+
+pattern SYSTEM_DIR_RINGTONES :: Int
+
+pattern SYSTEM_DIR_RINGTONES = 7
+
+pattern MONTH_AUGUST :: Int
+
+pattern MONTH_AUGUST = 8
+
+pattern SYSTEM_DIR_DOCUMENTS :: Int
+
+pattern SYSTEM_DIR_DOCUMENTS = 2
+
+pattern SYSTEM_DIR_MOVIES :: Int
+
+pattern SYSTEM_DIR_MOVIES = 4
+
+pattern SYSTEM_DIR_DCIM :: Int
+
+pattern SYSTEM_DIR_DCIM = 1
+
+pattern POWERSTATE_CHARGED :: Int
+
+pattern POWERSTATE_CHARGED = 4
+
+pattern MONTH_APRIL :: Int
+
+pattern MONTH_APRIL = 4
+
+pattern POWERSTATE_ON_BATTERY :: Int
+
+pattern POWERSTATE_ON_BATTERY = 1
+
+pattern DAY_SUNDAY :: Int
+
+pattern DAY_SUNDAY = 0
+
+pattern MONTH_MAY :: Int
+
+pattern MONTH_MAY = 5
+
+pattern SCREEN_ORIENTATION_REVERSE_PORTRAIT :: Int
+
+pattern SCREEN_ORIENTATION_REVERSE_PORTRAIT = 3
+
+pattern MONTH_JANUARY :: Int
+
+pattern MONTH_JANUARY = 1
+
+pattern MONTH_OCTOBER :: Int
+
+pattern MONTH_OCTOBER = 10
+
+pattern SCREEN_ORIENTATION_PORTRAIT :: Int
+
+pattern SCREEN_ORIENTATION_PORTRAIT = 1
+
+pattern SCREEN_ORIENTATION_SENSOR_LANDSCAPE :: Int
+
+pattern SCREEN_ORIENTATION_SENSOR_LANDSCAPE = 4
+
+pattern MONTH_SEPTEMBER :: Int
+
+pattern MONTH_SEPTEMBER = 9
+
+pattern POWERSTATE_CHARGING :: Int
+
+pattern POWERSTATE_CHARGING = 3
+
+pattern MONTH_FEBRUARY :: Int
+
+pattern MONTH_FEBRUARY = 2
+
+pattern MONTH_JUNE :: Int
+
+pattern MONTH_JUNE = 6
+
+pattern SCREEN_ORIENTATION_REVERSE_LANDSCAPE :: Int
+
+pattern SCREEN_ORIENTATION_REVERSE_LANDSCAPE = 2
+
+pattern DAY_SATURDAY :: Int
+
+pattern DAY_SATURDAY = 6
+
+pattern SCREEN_ORIENTATION_LANDSCAPE :: Int
+
+pattern SCREEN_ORIENTATION_LANDSCAPE = 0
+
+pattern DAY_WEDNESDAY :: Int
+
+pattern DAY_WEDNESDAY = 3
diff --git a/src/Godot/Core/Godot_ResourceLoader.hs b/src/Godot/Core/Godot_ResourceLoader.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_ResourceLoader.hs
@@ -0,0 +1,8 @@
+module Godot.Core.Godot_ResourceLoader where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/Godot_ResourceSaver.hs b/src/Godot/Core/Godot_ResourceSaver.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_ResourceSaver.hs
@@ -0,0 +1,36 @@
+module Godot.Core.Godot_ResourceSaver where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern FLAG_REPLACE_SUBRESOURCE_PATHS :: Int
+
+pattern FLAG_REPLACE_SUBRESOURCE_PATHS = 64
+
+pattern FLAG_RELATIVE_PATHS :: Int
+
+pattern FLAG_RELATIVE_PATHS = 1
+
+pattern FLAG_OMIT_EDITOR_PROPERTIES :: Int
+
+pattern FLAG_OMIT_EDITOR_PROPERTIES = 8
+
+pattern FLAG_SAVE_BIG_ENDIAN :: Int
+
+pattern FLAG_SAVE_BIG_ENDIAN = 16
+
+pattern FLAG_CHANGE_PATH :: Int
+
+pattern FLAG_CHANGE_PATH = 4
+
+pattern FLAG_COMPRESS :: Int
+
+pattern FLAG_COMPRESS = 32
+
+pattern FLAG_BUNDLE_RESOURCES :: Int
+
+pattern FLAG_BUNDLE_RESOURCES = 2
diff --git a/src/Godot/Core/Godot_Semaphore.hs b/src/Godot/Core/Godot_Semaphore.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_Semaphore.hs
@@ -0,0 +1,8 @@
+module Godot.Core.Godot_Semaphore where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Core/Godot_Thread.hs b/src/Godot/Core/Godot_Thread.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_Thread.hs
@@ -0,0 +1,20 @@
+module Godot.Core.Godot_Thread where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern PRIORITY_NORMAL :: Int
+
+pattern PRIORITY_NORMAL = 1
+
+pattern PRIORITY_LOW :: Int
+
+pattern PRIORITY_LOW = 0
+
+pattern PRIORITY_HIGH :: Int
+
+pattern PRIORITY_HIGH = 2
diff --git a/src/Godot/Core/Godot_VisualScriptEditor.hs b/src/Godot/Core/Godot_VisualScriptEditor.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Core/Godot_VisualScriptEditor.hs
@@ -0,0 +1,11 @@
+module Godot.Core.Godot_VisualScriptEditor where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+custom_nodes_updated :: Signal Godot_VisualScriptEditor
+custom_nodes_updated = Signal "custom_nodes_updated"
diff --git a/src/Godot/Gdnative/Internal.hs b/src/Godot/Gdnative/Internal.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Gdnative/Internal.hs
@@ -0,0 +1,5 @@
+module Godot.Gdnative.Internal (module M) where
+
+import Godot.Gdnative.Internal.Gdnative as M
+import Godot.Gdnative.Internal.Api as M
+
diff --git a/src/Godot/Gdnative/Internal/Api.hs b/src/Godot/Gdnative/Internal/Api.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Gdnative/Internal/Api.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE TemplateHaskell #-}
+module Godot.Gdnative.Internal.Api where
+
+import Data.Aeson
+import qualified Data.ByteString.Lazy as BL
+import Data.IORef
+
+import Foreign.C
+
+import Language.Haskell.TH
+
+import Data.ByteString.Internal (accursedUnutterablePerformIO)
+
+import Godot.Gdnative.Internal.Gdnative
+
+import Generate
+
+godotGdnativeCoreApiStruct :: GodotGdnativeCoreApiStruct
+godotGdnativeCoreApiStruct = accursedUnutterablePerformIO $ readIORef godotGdnativeCoreApiStructRef
+
+godotGdnativeCore11ApiStruct :: GodotGdnativeCore11ApiStruct
+godotGdnativeCore11ApiStruct = accursedUnutterablePerformIO $ readIORef godotGdnativeCore11ApiStructRef
+
+godotGdnativeExtNativescriptApiStruct :: GodotGdnativeExtNativescriptApiStruct
+godotGdnativeExtNativescriptApiStruct = accursedUnutterablePerformIO $ readIORef godotGdnativeExtNativescriptApiStructRef
+
+godotGdnativeExtNativescript11ApiStruct :: GodotGdnativeExtNativescript11ApiStruct
+godotGdnativeExtNativescript11ApiStruct = accursedUnutterablePerformIO $ readIORef godotGdnativeExtNativescript11ApiStructRef
+
+godotGdnativeExtPluginscriptApiStruct :: GodotGdnativeExtPluginscriptApiStruct
+godotGdnativeExtPluginscriptApiStruct = accursedUnutterablePerformIO $ readIORef godotGdnativeExtPluginscriptApiStructRef
+
+godotGdnativeExtArvrApiStruct :: GodotGdnativeExtArvrApiStruct
+godotGdnativeExtArvrApiStruct = accursedUnutterablePerformIO $ readIORef godotGdnativeExtArvrApiStructRef
+
+
+$(do
+    maybeApis <- eitherDecode <$> runIO (BL.readFile "godot_headers/gdnative_api.json")
+    case maybeApis of
+      Right apis -> apisToHs apis
+      Left err -> error err)
diff --git a/src/Godot/Gdnative/Internal/Gdnative.chs b/src/Godot/Gdnative/Internal/Gdnative.chs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Gdnative/Internal/Gdnative.chs
@@ -0,0 +1,796 @@
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE AllowAmbiguousTypes, ScopedTypeVariables, GADTs #-}
+{-# LANGUAGE UnboxedTuples, MagicHash #-}
+{-# LANGUAGE PatternSynonyms, RecordWildCards #-}
+{-# OPTIONS_GHC -Wno-name-shadowing #-}
+module Godot.Gdnative.Internal.Gdnative where
+
+import Control.Exception
+import Control.Monad
+import Data.Bits
+import Data.Coerce
+import Data.IORef
+import Foreign
+import Foreign.C
+import System.IO.Unsafe
+
+#include "util.h"
+#include "gdnative_api_struct.gen.h"
+
+{#enum godot_error as GodotError {underscoreToCase}
+  deriving (Show, Eq, Ord, Bounded) #}
+
+{#enum godot_variant_type as GodotVariantType {underscoreToCase}
+  deriving (Show, Eq, Ord, Bounded) #}
+
+{#enum godot_variant_call_error_error as GodotVariantCallErrorError {underscoreToCase}
+  deriving (Show, Eq, Ord, Bounded) #}
+
+{#enum godot_vector3_axis as GodotVector3Axis {underscoreToCase}
+ deriving (Show, Eq, Ord, Bounded)#}
+
+{#enum godot_variant_operator as GodotVariantOperator {underscoreToCase} 
+ deriving (Show, Eq, Ord, Bounded)#}
+  
+{#typedef godot_bool Bool #}
+type GodotBool = {#type godot_bool#}
+{#typedef godot_int CInt #}
+type GodotInt = {#type godot_int#}
+{#typedef godot_real CFloat #}
+type GodotReal = {#type godot_real#}
+{#typedef godot_char_type CWchar #}
+type GodotCharType = {#type godot_char_type #}
+
+{#pointer *godot_aabb as GodotAabb foreign newtype #}
+deriving newtype instance Eq GodotAabb
+
+{#pointer *godot_array as GodotArray foreign newtype #}
+deriving newtype instance Eq GodotArray
+
+{#pointer *godot_basis as GodotBasis foreign newtype #}
+deriving newtype instance Eq GodotBasis
+
+{#pointer *godot_char_string as GodotCharString foreign newtype #}
+deriving newtype instance Eq GodotCharString
+
+{#pointer *godot_color as GodotColor foreign newtype #}
+deriving newtype instance Eq GodotColor
+
+{#pointer *godot_dictionary as GodotDictionary foreign newtype #}
+deriving newtype instance Eq GodotDictionary
+
+{#pointer *godot_method_bind as GodotMethodBind foreign newtype #}
+deriving newtype instance Eq GodotMethodBind
+
+{#pointer *godot_node_path as GodotNodePath foreign newtype #}
+deriving newtype instance Eq GodotNodePath
+
+{#pointer *godot_plane as GodotPlane foreign newtype #}
+deriving newtype instance Eq GodotPlane
+
+{#pointer *godot_pool_array_read_access as GodotPoolArrayReadAccess foreign newtype #}
+deriving newtype instance Eq GodotPoolArrayReadAccess
+
+{#pointer *godot_pool_array_write_access as GodotPoolArrayWriteAccess foreign newtype #}
+deriving newtype instance Eq GodotPoolArrayWriteAccess
+
+{#pointer *godot_pool_byte_array as GodotPoolByteArray foreign newtype #}
+deriving newtype instance Eq GodotPoolByteArray
+
+{#pointer *godot_pool_color_array as GodotPoolColorArray foreign newtype #}
+deriving newtype instance Eq GodotPoolColorArray
+
+{#pointer *godot_pool_int_array as GodotPoolIntArray foreign newtype #}
+deriving newtype instance Eq GodotPoolIntArray
+
+{#pointer *godot_pool_real_array as GodotPoolRealArray foreign newtype #}
+deriving newtype instance Eq GodotPoolRealArray
+
+{#pointer *godot_pool_string_array as GodotPoolStringArray foreign newtype #}
+deriving newtype instance Eq GodotPoolStringArray
+
+{#pointer *godot_pool_vector2_array as GodotPoolVector2Array foreign newtype #}
+deriving newtype instance Eq GodotPoolVector2Array
+
+{#pointer *godot_pool_vector3_array as GodotPoolVector3Array foreign newtype #}
+deriving newtype instance Eq GodotPoolVector3Array
+
+{#pointer *godot_quat as GodotQuat foreign newtype #}
+deriving newtype instance Eq GodotQuat
+
+{#pointer *godot_rect2 as GodotRect2 foreign newtype #}
+deriving newtype instance Eq GodotRect2
+
+{#pointer *godot_rid as GodotRid foreign newtype #}
+deriving newtype instance Eq GodotRid
+
+{#pointer *godot_string as GodotString foreign newtype #}
+deriving newtype instance Eq GodotString
+
+{#pointer *godot_string_name as GodotStringName foreign newtype #}
+deriving newtype instance Eq GodotStringName
+
+{#pointer *godot_transform as GodotTransform foreign newtype #}
+deriving newtype instance Eq GodotTransform
+
+{#pointer *godot_transform2d as GodotTransform2d foreign newtype #}
+deriving newtype instance Eq GodotTransform2d
+
+{#pointer *godot_variant as GodotVariant foreign newtype #}
+deriving newtype instance Eq GodotVariant
+
+{#pointer *godot_vector2 as GodotVector2 foreign newtype #}
+deriving newtype instance Eq GodotVector2
+
+{#pointer *godot_vector3 as GodotVector3 foreign newtype #}
+deriving newtype instance Eq GodotVector3
+
+
+type GodotPoolByteArrayReadAccess = GodotPoolArrayReadAccess
+type GodotPoolByteArrayWriteAccess = GodotPoolArrayWriteAccess
+type GodotPoolColorArrayReadAccess = GodotPoolArrayReadAccess
+type GodotPoolColorArrayWriteAccess = GodotPoolArrayWriteAccess
+type GodotPoolIntArrayReadAccess = GodotPoolArrayReadAccess
+type GodotPoolIntArrayWriteAccess = GodotPoolArrayWriteAccess
+type GodotPoolRealArrayReadAccess = GodotPoolArrayReadAccess
+type GodotPoolRealArrayWriteAccess = GodotPoolArrayWriteAccess
+type GodotPoolStringArrayReadAccess = GodotPoolArrayReadAccess
+type GodotPoolStringArrayWriteAccess = GodotPoolArrayWriteAccess
+type GodotPoolVector2ArrayReadAccess = GodotPoolArrayReadAccess
+type GodotPoolVector2ArrayWriteAccess = GodotPoolArrayWriteAccess
+type GodotPoolVector3ArrayReadAccess = GodotPoolArrayReadAccess
+type GodotPoolVector3ArrayWriteAccess = GodotPoolArrayWriteAccess
+
+class OpaqueStorable a where
+  opaqueSizeOf :: Int
+instance OpaqueStorable GodotAabb where
+  opaqueSizeOf = {#sizeof godot_aabb#}
+
+
+instance OpaqueStorable GodotArray where
+  opaqueSizeOf = {#sizeof godot_array#}
+
+
+instance OpaqueStorable GodotBasis where
+  opaqueSizeOf = {#sizeof godot_basis#}
+
+
+instance OpaqueStorable GodotCharString where
+  opaqueSizeOf = {#sizeof godot_char_string#}
+
+
+instance OpaqueStorable GodotColor where
+  opaqueSizeOf = {#sizeof godot_color#}
+
+
+instance OpaqueStorable GodotDictionary where
+  opaqueSizeOf = {#sizeof godot_dictionary#}
+
+
+instance OpaqueStorable GodotMethodBind where
+  opaqueSizeOf = {#sizeof godot_method_bind#}
+
+
+instance OpaqueStorable GodotNodePath where
+  opaqueSizeOf = {#sizeof godot_node_path#}
+
+
+instance OpaqueStorable GodotPlane where
+  opaqueSizeOf = {#sizeof godot_plane#}
+
+
+instance OpaqueStorable GodotPoolArrayReadAccess where
+  opaqueSizeOf = {#sizeof godot_pool_array_read_access#}
+
+
+instance OpaqueStorable GodotPoolArrayWriteAccess where
+  opaqueSizeOf = {#sizeof godot_pool_array_write_access#}
+
+
+instance OpaqueStorable GodotPoolByteArray where
+  opaqueSizeOf = {#sizeof godot_pool_byte_array#}
+
+
+instance OpaqueStorable GodotPoolColorArray where
+  opaqueSizeOf = {#sizeof godot_pool_color_array#}
+
+
+instance OpaqueStorable GodotPoolIntArray where
+  opaqueSizeOf = {#sizeof godot_pool_int_array#}
+
+
+instance OpaqueStorable GodotPoolRealArray where
+  opaqueSizeOf = {#sizeof godot_pool_real_array#}
+
+
+instance OpaqueStorable GodotPoolStringArray where
+  opaqueSizeOf = {#sizeof godot_pool_string_array#}
+
+
+instance OpaqueStorable GodotPoolVector2Array where
+  opaqueSizeOf = {#sizeof godot_pool_vector2_array#}
+
+
+instance OpaqueStorable GodotPoolVector3Array where
+  opaqueSizeOf = {#sizeof godot_pool_vector3_array#}
+
+
+instance OpaqueStorable GodotQuat where
+  opaqueSizeOf = {#sizeof godot_quat#}
+
+
+instance OpaqueStorable GodotRect2 where
+  opaqueSizeOf = {#sizeof godot_rect2#}
+
+
+instance OpaqueStorable GodotRid where
+  opaqueSizeOf = {#sizeof godot_rid#}
+
+
+instance OpaqueStorable GodotString where
+  opaqueSizeOf = {#sizeof godot_string#}
+
+
+instance OpaqueStorable GodotStringName where
+  opaqueSizeOf = {#sizeof godot_string_name#}
+
+
+instance OpaqueStorable GodotTransform where
+  opaqueSizeOf = {#sizeof godot_transform#}
+
+
+instance OpaqueStorable GodotTransform2d where
+  opaqueSizeOf = {#sizeof godot_transform2d#}
+
+
+instance OpaqueStorable GodotVariant where
+  opaqueSizeOf = {#sizeof godot_variant#}
+
+
+instance OpaqueStorable GodotVector2 where
+  opaqueSizeOf = {#sizeof godot_vector2#}
+
+
+instance OpaqueStorable GodotVector3 where
+  opaqueSizeOf = {#sizeof godot_vector3#}
+
+
+data GodotVariantCallError = GodotVariantCallError
+  { variantCallErrorError :: !GodotVariantCallErrorError
+  , variantCallErrorArgument :: !(Maybe CInt)
+  , variantCallErrorExpected :: !(Maybe GodotVariantType)
+  } deriving (Show, Eq, Ord)
+
+instance Exception GodotVariantCallError
+
+{#pointer *godot_variant_call_error as GodotVariantCallErrorPtr -> GodotVariantCallError#}
+
+instance Storable GodotVariantCallError where
+  sizeOf _ = {#sizeof godot_variant_call_error#}
+  alignment _ = {#alignof godot_variant_call_error#}
+  peek ptr = do
+    err <- (toEnum . fromIntegral) <$> {#get godot_variant_call_error->error #} ptr
+    case err of
+      GodotCallErrorCallErrorInvalidArgument ->
+        GodotVariantCallError err 
+             <$> (Just <$> {#get godot_variant_call_error->argument #} ptr)
+             <*> ((Just . toEnum . fromIntegral) <$> {#get godot_variant_call_error->expected #} ptr)
+      _ -> return $ GodotVariantCallError err Nothing Nothing
+  poke ptr a = error "can't poke GodotVariantCallError"
+
+{#pointer *godot_gdnative_api_struct as GodotGdnativeApiStruct newtype#}
+deriving newtype instance Eq GodotGdnativeApiStruct
+deriving newtype instance Storable GodotGdnativeApiStruct
+
+{#pointer *godot_gdnative_core_api_struct as GodotGdnativeCoreApiStruct newtype#}
+deriving newtype instance Eq GodotGdnativeCoreApiStruct
+deriving newtype instance Storable GodotGdnativeCoreApiStruct
+
+{#pointer *godot_gdnative_core_1_1_api_struct as GodotGdnativeCore11ApiStruct newtype#}
+deriving newtype instance Eq GodotGdnativeCore11ApiStruct
+deriving newtype instance Storable GodotGdnativeCore11ApiStruct
+
+{#pointer *godot_gdnative_ext_nativescript_api_struct as GodotGdnativeExtNativescriptApiStruct newtype#}
+deriving newtype instance Eq GodotGdnativeExtNativescriptApiStruct
+deriving newtype instance Storable GodotGdnativeExtNativescriptApiStruct
+
+{#pointer *godot_gdnative_ext_nativescript_1_1_api_struct as GodotGdnativeExtNativescript11ApiStruct newtype#}
+deriving newtype instance Eq GodotGdnativeExtNativescript11ApiStruct
+deriving newtype instance Storable GodotGdnativeExtNativescript11ApiStruct
+
+{#pointer *godot_gdnative_ext_pluginscript_api_struct as GodotGdnativeExtPluginscriptApiStruct newtype#}
+deriving newtype instance Eq GodotGdnativeExtPluginscriptApiStruct
+deriving newtype instance Storable GodotGdnativeExtPluginscriptApiStruct
+
+{#pointer *godot_gdnative_ext_arvr_api_struct as GodotGdnativeExtArvrApiStruct newtype#}
+deriving newtype instance Eq GodotGdnativeExtArvrApiStruct
+deriving newtype instance Storable GodotGdnativeExtArvrApiStruct
+
+type ReportVersionMismatchFunc = GodotObject -> CString -> Word64 -> Word64 -> IO ()
+type ReportLoadingErrorFunc = GodotObject -> CString -> IO ()
+
+
+{#pointer *godot_object as GodotObject newtype #}
+deriving newtype instance Show  GodotObject
+deriving newtype instance Eq GodotObject
+deriving newtype instance Storable GodotObject
+
+
+data GodotGdnativeInitOptions = GodotGdnativeInitOptions
+  { gdnativeInitOptionsInEditor :: !Bool
+  , gdnativeInitOptionsCoreApiHash :: !Word64
+  , gdnativeInitOptionsEditorApiHash :: !Word64
+  , gdnativeInitOptionsNoApiHash :: !Word64
+  , gdnativeInitOptionsReportVersionMismatch :: !ReportVersionMismatchFunc
+  , gdnativeInitOptionsReportLoadingError :: !ReportLoadingErrorFunc
+  , gdnativeInitOptionsGdNativeLibrary :: !GodotObject
+  , gdnativeInitOptionsApiStruct :: !GodotGdnativeCoreApiStruct
+  , gdnativeInitOptionsActiveLibraryPath :: !GodotString
+  }
+
+foreign import ccall "dynamic" mkReportVersionMismatchFunc :: FunPtr ReportVersionMismatchFunc -> ReportVersionMismatchFunc
+
+foreign import ccall "dynamic" mkReportLoadingErrorFunc :: FunPtr ReportLoadingErrorFunc -> ReportLoadingErrorFunc
+
+instance Storable GodotGdnativeInitOptions where
+  sizeOf _ = {#sizeof godot_gdnative_init_options#}
+  alignment _ = {#alignof godot_gdnative_init_options#}
+  peek ptr = GodotGdnativeInitOptions
+             <$> {#get godot_gdnative_init_options->in_editor#} ptr
+             <*> (fromIntegral <$> {#get godot_gdnative_init_options->core_api_hash#} ptr)
+             <*> (fromIntegral <$> {#get godot_gdnative_init_options->editor_api_hash#} ptr)
+             <*> (fromIntegral <$> {#get godot_gdnative_init_options->no_api_hash#} ptr)
+             <*> ((mkReportVersionMismatchFunc . castFunPtrVersion) <$> {#get godot_gdnative_init_options->report_version_mismatch#} ptr)
+             <*> (mkReportLoadingErrorFunc <$> {#get godot_gdnative_init_options->report_loading_error#} ptr)
+             <*> {#get godot_gdnative_init_options->gd_native_library#} ptr
+             <*> {#get godot_gdnative_init_options->api_struct#} ptr
+             <*> (GodotString <$> ({#get godot_gdnative_init_options->active_library_path#} ptr >>= newForeignPtr_))
+    where
+      castFunPtrVersion :: FunPtr (GodotObject -> Ptr CChar -> Ptr () -> Ptr () -> IO ()) -> FunPtr ReportVersionMismatchFunc
+      castFunPtrVersion = castFunPtr
+  poke _ _ = error "Poking GodotGdNativeInitOptions is unsupported"
+
+{#pointer *godot_gdnative_init_options as GodotGdnativeInitOptionsPtr -> GodotGdnativeInitOptions#}
+
+data GodotGdnativeTerminateOptions = GodotGdnativeTerminateOptions
+  { gdnativeTerminateOptionsInEditor :: Bool
+  } deriving (Show, Eq, Ord)
+
+instance Storable GodotGdnativeTerminateOptions where
+  sizeOf _ = {#sizeof godot_gdnative_terminate_options#}
+  alignment _ = {#alignof godot_gdnative_terminate_options#}
+  peek ptr = GodotGdnativeTerminateOptions
+             <$> {#get godot_gdnative_terminate_options->in_editor#} ptr
+  poke ptr a = {#set godot_gdnative_terminate_options->in_editor#} ptr (gdnativeTerminateOptionsInEditor a)
+
+{#pointer *godot_gdnative_terminate_options as GodotGdnativeTerminateOptionsPtr -> GodotGdnativeTerminateOptions#}
+
+
+-- ok so:
+-- on both SysV x64 and Win64, structs larger than 64bits are passed by pointer
+-- i.e. the following two are equivalent:
+{-
+godot_variant test() {
+    godot_variant var;
+    godot_variant_new_nil(&var);
+    return var;
+}
+
+godot_variant* test2(godot_variant* ret) {
+    godot_variant_new_nil(ret);
+    return ret;
+}
+-}
+-- we're abusing this. remember to return the godotvariant!!
+type NativeCallCb = FunPtr (Ptr GodotVariant -> Ptr () -> GodotArray -> IO (Ptr GodotVariant))
+-- funptrs
+type GodotClassConstructor = FunPtr (IO GodotObject)
+
+-- stuff that's not opaque (i.e. needs to be Storable'd) but i don't want to deal w/ rn
+
+-- pluginscript
+-- TODO: we don't support pluginscript right now
+data GodotPluginscriptLanguageDesc
+instance Storable GodotPluginscriptLanguageDesc where
+  sizeOf _ = {#sizeof godot_pluginscript_language_desc#}
+  alignment _ = {#alignof godot_pluginscript_language_desc#}
+  peek = error "GodotPluginscriptLanguageDesc peek not implemented"
+  poke = error "GodotPluginscriptLanguageDesc poke not implemented"
+
+{#pointer *godot_pluginscript_language_desc as GodotPluginscriptLanguageDescPtr -> GodotPluginscriptLanguageDesc#}
+
+-- nativescript
+{#enum godot_property_hint as GodotPropertyHint {underscoreToCase}
+  deriving (Show, Eq, Ord, Bounded) #}
+
+{#enum godot_method_rpc_mode as GodotMethodRpcMode {underscoreToCase}
+  deriving (Show, Eq, Ord, Bounded) #}
+
+newtype GodotPropertyUsageFlags = GodotPropertyUsageFlags { unGodotPropertyUsageFlags :: CInt }
+  deriving newtype (Show, Eq, Ord, Bits, Storable)
+
+pattern GodotPropertyUsageStorage :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageStorage = GodotPropertyUsageFlags 1
+
+pattern GodotPropertyUsageEditor :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageEditor = GodotPropertyUsageFlags 2
+
+pattern GodotPropertyUsageNetwork :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageNetwork = GodotPropertyUsageFlags 4
+
+pattern GodotPropertyUsageEditorHelper :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageEditorHelper = GodotPropertyUsageFlags 8
+
+pattern GodotPropertyUsageCheckable :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageCheckable = GodotPropertyUsageFlags 16
+
+pattern GodotPropertyUsageChecked :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageChecked = GodotPropertyUsageFlags 32
+
+pattern GodotPropertyUsageInternationalized :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageInternationalized = GodotPropertyUsageFlags 64
+
+pattern GodotPropertyUsageGroup :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageGroup = GodotPropertyUsageFlags 128
+
+pattern GodotPropertyUsageCategory :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageCategory = GodotPropertyUsageFlags 256
+
+pattern GodotPropertyUsageStoreIfNonzero :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageStoreIfNonzero = GodotPropertyUsageFlags 512
+
+pattern GodotPropertyUsageStoreIfNonone :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageStoreIfNonone = GodotPropertyUsageFlags 1024
+
+pattern GodotPropertyUsageNoInstanceState :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageNoInstanceState = GodotPropertyUsageFlags 2048
+
+pattern GodotPropertyUsageRestartIfChanged :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageRestartIfChanged = GodotPropertyUsageFlags 4096
+
+pattern GodotPropertyUsageScriptVariable :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageScriptVariable = GodotPropertyUsageFlags 8192
+
+pattern GodotPropertyUsageStoreIfNull :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageStoreIfNull = GodotPropertyUsageFlags 16384
+
+pattern GodotPropertyUsageAnimateAsTrigger :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageAnimateAsTrigger = GodotPropertyUsageFlags 32768
+
+pattern GodotPropertyUsageUpdateAllIfModified :: GodotPropertyUsageFlags
+pattern GodotPropertyUsageUpdateAllIfModified = GodotPropertyUsageFlags 65536
+
+godotPropertyUsageDefault :: GodotPropertyUsageFlags
+godotPropertyUsageDefault = GodotPropertyUsageStorage .|. GodotPropertyUsageEditor .|. GodotPropertyUsageNetwork
+
+godotPropertyUsageDefaultIntl :: GodotPropertyUsageFlags
+godotPropertyUsageDefaultIntl = godotPropertyUsageDefault .|. GodotPropertyUsageInternationalized
+
+godotPropertyUsageNoeditor :: GodotPropertyUsageFlags
+godotPropertyUsageNoeditor = GodotPropertyUsageStorage .|. GodotPropertyUsageNetwork
+
+type InstanceCreateFun = GodotObject -> Ptr () -> IO (Ptr ())
+type InstanceDestroyFun = GodotObject -> Ptr ()  -> Ptr () -> IO ()
+type InstanceFreeFun = Ptr () -> IO ()
+
+foreign import ccall "wrapper" mkInstanceCreateFunPtr :: InstanceCreateFun -> IO (FunPtr InstanceCreateFun)
+foreign import ccall "wrapper" mkInstanceDestroyFunPtr :: InstanceDestroyFun -> IO (FunPtr InstanceDestroyFun)
+foreign import ccall "wrapper" mkInstanceFreeFunPtr :: InstanceFreeFun -> IO (FunPtr InstanceFreeFun)
+
+data GodotInstanceCreateFunc = GodotInstanceCreateFunc
+  { godotInstanceCreateFunc :: !(FunPtr InstanceCreateFun)
+  , godotInstanceCreateMethodData :: !(Ptr ())
+  , godotInstanceCreateFreeFunc :: !(FunPtr InstanceFreeFun)
+  } deriving (Show, Eq)
+instance Storable GodotInstanceCreateFunc where
+  sizeOf _ = {#sizeof godot_instance_create_func#}
+  alignment _ = {#alignof godot_instance_create_func#}
+  peek ptr = GodotInstanceCreateFunc
+             <$> {#get godot_instance_create_func->create_func#} ptr
+             <*> {#get godot_instance_create_func->method_data#} ptr
+             <*> {#get godot_instance_create_func->free_func#} ptr
+  poke ptr GodotInstanceCreateFunc{..} = do
+    {#set godot_instance_create_func->create_func#} ptr godotInstanceCreateFunc
+    {#set godot_instance_create_func->method_data#} ptr godotInstanceCreateMethodData
+    {#set godot_instance_create_func->free_func#} ptr godotInstanceCreateFreeFunc
+
+{#pointer *godot_instance_create_func as GodotInstanceCreateFuncPtr -> GodotInstanceCreateFunc #}
+
+data GodotInstanceDestroyFunc = GodotInstanceDestroyFunc
+  { godotInstanceDestroyFunc :: !(FunPtr InstanceDestroyFun)
+  , godotInstanceDestroyMethodData :: !(Ptr ())
+  , godotInstanceDestroyFreeFunc :: !(FunPtr InstanceFreeFun)
+  } deriving (Show, Eq)
+instance Storable GodotInstanceDestroyFunc where
+  sizeOf _ = {#sizeof godot_instance_destroy_func#}
+  alignment _ = {#alignof godot_instance_destroy_func#}
+  peek ptr = GodotInstanceDestroyFunc
+             <$> {#get godot_instance_destroy_func->destroy_func#} ptr
+             <*> {#get godot_instance_destroy_func->method_data#} ptr
+             <*> {#get godot_instance_destroy_func->free_func#} ptr
+  poke ptr GodotInstanceDestroyFunc{..} = do
+    {#set godot_instance_destroy_func->destroy_func#} ptr godotInstanceDestroyFunc
+    {#set godot_instance_destroy_func->method_data#} ptr godotInstanceDestroyMethodData
+    {#set godot_instance_destroy_func->free_func#} ptr godotInstanceDestroyFreeFunc
+
+{#pointer *godot_instance_destroy_func as GodotInstanceDestroyFuncPtr -> GodotInstanceDestroyFunc #}
+
+type InstanceMethodFun = Ptr GodotVariant -> GodotObject -> Ptr () -> Ptr () -> CInt 
+                      -> Ptr (Ptr GodotVariant) -> IO (Ptr GodotVariant)
+
+foreign import ccall "wrapper" mkInstanceMethodFunPtr :: InstanceMethodFun -> IO (FunPtr InstanceMethodFun)
+
+data GodotInstanceMethod = GodotInstanceMethod
+  { godotInstanceMethod :: !(FunPtr InstanceMethodFun)
+  , godotInstanceMethodData :: !(Ptr ())
+  , godotInstanceMethodFreeFunc :: !(FunPtr InstanceFreeFun)
+  } deriving (Show, Eq)
+instance Storable GodotInstanceMethod where
+    sizeOf _ = {#sizeof godot_instance_method#}
+    alignment _ = {#alignof godot_instance_method#}
+    peek ptr = GodotInstanceMethod
+               <$> (castFunPtr <$> {#get godot_instance_method->method#} ptr)
+               <*> {#get godot_instance_method->method_data#} ptr
+               <*> {#get godot_instance_method->free_func#} ptr
+    poke ptr GodotInstanceMethod{..} = do
+      {#set godot_instance_method->method#} ptr (castFunPtr godotInstanceMethod)
+      {#set godot_instance_method->method_data#} ptr godotInstanceMethodData
+      {#set godot_instance_method->free_func#} ptr godotInstanceMethodFreeFunc
+
+{#pointer *godot_instance_method as GodotInstanceMethodPtr -> GodotInstanceMethod #}
+
+newtype GodotMethodAttributes = GodotMethodAttributes GodotMethodRpcMode
+  deriving newtype (Show, Eq)
+
+instance Storable GodotMethodAttributes where
+  sizeOf _ = {#sizeof godot_method_attributes#}
+  alignment _ = {#alignof godot_method_attributes#}
+  peek ptr = (GodotMethodAttributes . toEnum . fromIntegral) <$> {#get godot_method_attributes->rpc_type#} ptr
+  poke ptr (GodotMethodAttributes rpcType) = {#set godot_method_attributes->rpc_type#} ptr (fromIntegral $ fromEnum rpcType)
+
+{#pointer *godot_method_attributes as GodotMethodAttributesPtr -> GodotMethodAttributes #}
+
+type PropertyGetFun = Ptr GodotVariant -> GodotObject -> Ptr () -> Ptr () -> IO (Ptr GodotVariant)
+
+foreign import ccall "wrapper" mkPropertyGetFunPtr :: PropertyGetFun -> IO (FunPtr PropertyGetFun)
+
+data GodotPropertyGetFunc = GodotPropertyGetFunc
+  { godotPropertyGetFunc :: !(FunPtr PropertyGetFun)
+  , godotPropertyGetMethodData :: !(Ptr ())
+  , godotPropertyGetFreeFunc :: !(FunPtr InstanceFreeFun)
+  } deriving (Show, Eq)
+
+instance Storable GodotPropertyGetFunc where
+  sizeOf _ = {#sizeof godot_property_get_func#}
+  alignment _ = {#alignof godot_property_get_func#}
+  peek ptr = GodotPropertyGetFunc
+             <$> (castFunPtr <$> {#get godot_property_get_func->get_func#} ptr)
+             <*> {#get godot_property_get_func->method_data#} ptr
+             <*> {#get godot_property_get_func->free_func#} ptr
+  poke ptr GodotPropertyGetFunc{..} = do
+    {#set godot_property_get_func->get_func#} ptr (castFunPtr godotPropertyGetFunc)
+    {#set godot_property_get_func->method_data#} ptr godotPropertyGetMethodData
+    {#set godot_property_get_func->free_func#} ptr godotPropertyGetFreeFunc
+
+{#pointer *godot_property_get_func as GodotPropertyGetFuncPtr -> GodotPropertyGetFunc #}
+
+type PropertySetFun = GodotObject -> Ptr () -> Ptr () -> Ptr GodotVariant -> IO ()
+
+foreign import ccall "wrapper" mkPropertySetFunPtr :: PropertySetFun -> IO (FunPtr PropertySetFun)
+
+data GodotPropertySetFunc = GodotPropertySetFunc
+  { godotPropertySetFunc :: !(FunPtr PropertySetFun)
+  , godotPropertySetMethodData :: !(Ptr ())
+  , godotPropertySetFreeFunc :: !(FunPtr InstanceFreeFun)
+  } deriving (Show, Eq)
+
+instance Storable GodotPropertySetFunc where
+    sizeOf _ = {#sizeof godot_property_set_func#}
+    alignment _ = {#alignof godot_property_set_func#}
+    peek ptr = GodotPropertySetFunc
+               <$> {#get godot_property_set_func->set_func#} ptr
+               <*> {#get godot_property_set_func->method_data#} ptr
+               <*> {#get godot_property_set_func->free_func#} ptr
+    poke ptr GodotPropertySetFunc{..} = do
+      {#set godot_property_set_func->set_func#} ptr godotPropertySetFunc
+      {#set godot_property_set_func->method_data#} ptr godotPropertySetMethodData
+      {#set godot_property_set_func->free_func#} ptr godotPropertySetFreeFunc
+
+{#pointer *godot_property_set_func as GodotPropertySetFuncPtr -> GodotPropertySetFunc #}
+
+getOpaqueFromStruct :: forall a b. OpaqueStorable a => (ForeignPtr a -> a) -> Ptr b -> Int -> IO a
+getOpaqueFromStruct con structPtr offset = do
+  let start = structPtr `plusPtr` offset
+  let size = opaqueSizeOf @a
+  (fptr :: ForeignPtr a) <- mallocForeignPtrBytes size
+  withForeignPtr fptr $ \ptr -> copyBytes ptr start size
+  return $ con fptr
+
+setOpaqueFromStruct :: forall a b. (Coercible a (ForeignPtr a), OpaqueStorable a) => Ptr b -> a -> Int -> IO ()
+setOpaqueFromStruct structPtr fptr offset = do
+    let start = structPtr `plusPtr` offset
+    let size = opaqueSizeOf @a
+    withForeignPtr (coerce fptr :: ForeignPtr a) $ \ptr -> copyBytes start ptr size
+
+data GodotPropertyAttributes = GodotPropertyAttributes
+  { godotPropertyAttributesRsetType :: !GodotMethodRpcMode
+  , godotPropertyAttributesType :: !GodotInt
+  , godotPropertyAttributesHint :: !GodotPropertyHint
+  , godotPropertyAttributesHintString :: !GodotString
+  , godotPropertyAttributesUsage :: !GodotPropertyUsageFlags
+  , godotPropertyAttributesDefaultValue :: !GodotVariant
+  }
+instance Storable GodotPropertyAttributes where
+  sizeOf _ = {#sizeof godot_property_attributes#}
+  alignment _ = {#alignof godot_property_attributes#}
+  peek ptr = do
+    godotPropertyAttributesRsetType <- (toEnum . fromIntegral) <$> {#get godot_property_attributes->rset_type#} ptr
+    godotPropertyAttributesType <- {#get godot_property_attributes->type#} ptr
+    godotPropertyAttributesHint <- (toEnum . fromIntegral) <$> {#get godot_property_attributes->hint#} ptr 
+    godotPropertyAttributesHintString <- getOpaqueFromStruct GodotString ptr {#offsetof godot_property_attributes->hint_string#}
+    godotPropertyAttributesUsage <- GodotPropertyUsageFlags <$> {#get godot_property_attributes->usage#} ptr
+    godotPropertyAttributesDefaultValue <- getOpaqueFromStruct GodotVariant ptr {#offsetof godot_property_attributes->default_value#}
+    return GodotPropertyAttributes{..}
+  poke ptr GodotPropertyAttributes{..} = do
+    {#set godot_property_attributes->rset_type#} ptr (fromIntegral . fromEnum $ godotPropertyAttributesRsetType)
+    {#set godot_property_attributes->type#} ptr godotPropertyAttributesType
+    {#set godot_property_attributes->hint#} ptr (fromIntegral . fromEnum $ godotPropertyAttributesHint)
+    setOpaqueFromStruct ptr godotPropertyAttributesHintString {#offsetof godot_property_attributes->hint_string#}
+    {#set godot_property_attributes->usage#} ptr (unGodotPropertyUsageFlags godotPropertyAttributesUsage)
+    setOpaqueFromStruct ptr godotPropertyAttributesDefaultValue {#offsetof godot_property_attributes->default_value#}
+
+{#pointer *godot_property_attributes as GodotPropertyAttributesPtr -> GodotPropertyAttributes #}
+
+
+data GodotSignalArgument = GodotSignalArgument
+  { godotSignalArgumentName :: !GodotString
+  , godotSignalArgumentType :: !GodotInt
+  , godotSignalArgumentHint :: !GodotPropertyHint
+  , godotSignalArgumentHintString :: !GodotString
+  , godotSignalArgumentUsage :: !GodotPropertyUsageFlags
+  , godotSignalArgumentDefaultValue :: !GodotVariant
+  }
+instance Storable GodotSignalArgument where
+  sizeOf _ = {#sizeof godot_signal_argument#}
+  alignment _ = {#alignof godot_signal_argument#}
+  peek ptr = do
+    godotSignalArgumentName <- getOpaqueFromStruct GodotString ptr {#offsetof godot_signal_argument->name#} 
+    godotSignalArgumentType <- {#get godot_signal_argument->type#} ptr
+    godotSignalArgumentHint <- (toEnum . fromIntegral) <$> {#get godot_signal_argument->hint#} ptr 
+    godotSignalArgumentHintString <- getOpaqueFromStruct GodotString ptr {#offsetof godot_signal_argument->hint_string#}
+    godotSignalArgumentUsage <- GodotPropertyUsageFlags <$> {#get godot_signal_argument->usage#} ptr
+    godotSignalArgumentDefaultValue <- getOpaqueFromStruct GodotVariant ptr {#offsetof godot_signal_argument->default_value#}
+    return GodotSignalArgument{..}
+  poke ptr GodotSignalArgument{..} = do
+    setOpaqueFromStruct ptr godotSignalArgumentName {#offsetof godot_signal_argument->name#}
+    {#set godot_signal_argument->type#} ptr godotSignalArgumentType
+    {#set godot_signal_argument->hint#} ptr (fromIntegral . fromEnum $ godotSignalArgumentHint)
+    setOpaqueFromStruct ptr godotSignalArgumentHintString {#offsetof godot_signal_argument->hint_string#}
+    {#set godot_signal_argument->usage#} ptr (unGodotPropertyUsageFlags godotSignalArgumentUsage)
+    setOpaqueFromStruct ptr godotSignalArgumentDefaultValue {#offsetof godot_signal_argument->default_value#}
+{#pointer *godot_signal_argument as GodotSignalArgumentPtr -> GodotSignalArgument#}
+
+data GodotSignal = GodotSignal
+  { godotSignalName :: !GodotString
+  , godotSignalNumArgs :: !CInt
+  , godotSignalArgs :: !(Ptr GodotSignalArgument)
+  , godotSignalNumDefaultArgs :: !CInt
+  , godotSignalDefaultArgs :: !(Ptr GodotVariant)
+  }
+instance Storable GodotSignal where
+  sizeOf _ = {#sizeof godot_signal#}
+  alignment _ = {#alignof godot_signal#}
+  peek ptr = do
+    godotSignalName <- getOpaqueFromStruct GodotString ptr {#offsetof godot_signal->name#} 
+    godotSignalNumArgs <- {#get godot_signal->num_args#} ptr
+    godotSignalArgs <- {#get godot_signal->args#} ptr
+    godotSignalNumDefaultArgs <- {#get godot_signal->num_default_args#} ptr
+    godotSignalDefaultArgs <- {#get godot_signal->default_args#} ptr
+    return GodotSignal{..}
+  poke ptr GodotSignal{..} = do
+    setOpaqueFromStruct ptr godotSignalName {#offsetof godot_signal->name#}
+    {#set godot_signal->num_args#} ptr godotSignalNumArgs
+    {#set godot_signal->args#} ptr godotSignalArgs
+    {#set godot_signal->num_default_args#} ptr godotSignalNumDefaultArgs
+    {#set godot_signal->default_args#} ptr godotSignalDefaultArgs
+    
+{#pointer *godot_signal as GodotSignalPtr -> GodotSignal#}
+
+
+
+data GodotInstanceBindingFunctions
+instance Storable GodotInstanceBindingFunctions where
+  sizeOf _ = {#sizeof godot_instance_binding_functions#}
+  alignment _ = {#sizeof godot_instance_binding_functions#}
+  peek = error "GodotInstanceBindingFunctions peek not implemented"
+  poke = error "GodotInstanceBindingFunctions poke not implemented"
+{#pointer *godot_instance_binding_functions as GodotInstanceBindingFunctionsPtr -> GodotInstanceBindingFunctions #}
+
+
+data GodotMethodArg
+instance Storable GodotMethodArg where
+  sizeOf _ = {#sizeof godot_method_arg#}
+  alignment _ = {#sizeof godot_method_arg#}
+  peek = error "GodotMethodArg peek not implemented"
+  poke = error "GodotMethodArg poke not implemented"
+{#pointer *godot_method_arg as GodotMethodArgPtr -> GodotMethodArg #}
+
+
+--arvr
+
+data GodotArvrInterfaceGdnative
+instance Storable GodotArvrInterfaceGdnative where
+  sizeOf _ = {#sizeof godot_arvr_interface_gdnative#}
+  alignment _ = {#sizeof godot_arvr_interface_gdnative#}
+  peek = error "GodotArvrInterfaceGdnative peek not implemented"
+  poke = error "GodotArvrInterfaceGdnative poke not implemented"
+{#pointer *godot_arvr_interface_gdnative as GodotArvrInterfaceGdnativePtr -> GodotArvrInterfaceGdnative #}
+
+
+
+
+godotGdnativeCoreApiStructRef :: IORef GodotGdnativeCoreApiStruct
+godotGdnativeCoreApiStructRef = unsafePerformIO $ newIORef $ 
+  error "attempted to get godotGdnativeCoreApiStructRef too early"
+{-# NOINLINE godotGdnativeCoreApiStructRef #-}
+
+godotGdnativeCore11ApiStructRef :: IORef GodotGdnativeCore11ApiStruct
+godotGdnativeCore11ApiStructRef = unsafePerformIO $ newIORef $ 
+  error "attempted to get godotGdnativeCore11ApiStructRef too early"
+{-# NOINLINE godotGdnativeCore11ApiStructRef #-}
+
+godotGdnativeExtNativescriptApiStructRef :: IORef GodotGdnativeExtNativescriptApiStruct
+godotGdnativeExtNativescriptApiStructRef = unsafePerformIO $ newIORef $ 
+  error "attempted to get godotGdnativeExtNativescriptApiStructRef too early"
+{-# NOINLINE godotGdnativeExtNativescriptApiStructRef #-}
+
+godotGdnativeExtNativescript11ApiStructRef :: IORef GodotGdnativeExtNativescript11ApiStruct
+godotGdnativeExtNativescript11ApiStructRef = unsafePerformIO $ newIORef $ 
+  error "attempted to get godotGdnativeExtNativescript11ApiStructRef too early"
+{-# NOINLINE godotGdnativeExtNativescript11ApiStructRef #-}
+
+godotGdnativeExtPluginscriptApiStructRef :: IORef GodotGdnativeExtPluginscriptApiStruct
+godotGdnativeExtPluginscriptApiStructRef = unsafePerformIO $ newIORef $ 
+  error "attempted to get godotGdnativeExtPluginscriptApiStructRef too early"
+{-# NOINLINE godotGdnativeExtPluginscriptApiStructRef #-}
+
+godotGdnativeExtArvrApiStructRef :: IORef GodotGdnativeExtArvrApiStruct
+godotGdnativeExtArvrApiStructRef = unsafePerformIO $ newIORef $ 
+  error "attempted to get godotGdnativeExtArvrApiStructRef too early"
+{-# NOINLINE godotGdnativeExtArvrApiStructRef #-}
+
+initApiStructs :: GodotGdnativeInitOptions -> IO ()
+initApiStructs opts = do
+  let coreApi = gdnativeInitOptionsApiStruct opts
+  writeIORef godotGdnativeCoreApiStructRef coreApi
+  findCoreExt (coerce coreApi)
+
+  numExt <- {#get godot_gdnative_core_api_struct->num_extensions #} coreApi
+  extsPtr <- {#get godot_gdnative_core_api_struct->extensions #} coreApi
+  exts <- peekArray (fromIntegral numExt) (castPtr extsPtr :: Ptr GodotGdnativeApiStruct)
+  forM_ exts $ \ext -> do
+    ty <- {#get godot_gdnative_api_struct->type #} ext
+    -- HACK
+    case ty of
+      1 -> do -- nativescript
+        writeIORef godotGdnativeExtNativescriptApiStructRef (coerce ext)
+        findNativescriptExt ext
+      2 -> do -- pluginscript
+        writeIORef godotGdnativeExtPluginscriptApiStructRef (coerce ext)
+      3 -> return () -- android
+      4 -> do -- arvr
+        writeIORef godotGdnativeExtArvrApiStructRef (coerce ext)
+      _ -> error $ "Unknown API struct type " ++ show ty
+  where
+    findCoreExt = findExt GodotGdnativeCore11ApiStruct godotGdnativeCore11ApiStructRef
+    findNativescriptExt = findExt GodotGdnativeExtNativescript11ApiStruct godotGdnativeExtNativescript11ApiStructRef
+    findExt con ref ext = do
+      next <- {#get godot_gdnative_api_struct->next #} ext
+      when (next /= coerce nullPtr) $ do
+
+        major <- {#get godot_gdnative_api_struct->version.major #} next
+        minor <- {#get godot_gdnative_api_struct->version.minor #} next
+        if major == 1 && minor == 1 then writeIORef ref (con $ coerce next)
+        else findExt con ref next
+
+
diff --git a/src/Godot/Gdnative/Internal/TH.hs b/src/Godot/Gdnative/Internal/TH.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Gdnative/Internal/TH.hs
@@ -0,0 +1,28 @@
+{-#LANGUAGE TemplateHaskell#-}
+module Godot.Gdnative.Internal.TH where
+
+import Data.Maybe
+import Godot.Gdnative.Internal.Gdnative
+import Language.Haskell.TH
+import Language.Haskell.TH.Syntax
+import Foreign
+
+generateAsVariantInstances :: Q [Dec]
+generateAsVariantInstances = do
+  (TyConI (DataD _ _ bndrs _ cons _)) <- lookupTypeName "Variant" >>= \(Just x) -> reify x
+  let tys = mapMaybe getCon cons
+  mapM mkInstance tys
+
+  where
+    getCon (NormalC name [(_, AppT (AppT _ _) ty)]) = Just (name, ty)
+    getCon (NormalC name [(_, ty)]) = Just (name, ty)
+    getCon _ = Nothing
+    mkInstance (name, ty)
+      = instanceD (cxt []) (appT (conT $ mkName "AsVariant") (return ty))
+          [ valD (varP $ mkName "toVariant") (normalB $ conE $ mkName $ nameBase name) []
+          , valD (varP $ mkName "fromVariant") (normalB
+              [| \var -> case var of
+                   $(conP (mkName $ nameBase name) [varP $ mkName "x"]) -> Just x
+                   _ -> Nothing |]) [] ]
+      
+
diff --git a/src/Godot/Gdnative/Types.hs b/src/Godot/Gdnative/Types.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Gdnative/Types.hs
@@ -0,0 +1,283 @@
+{-# LANGUAGE FunctionalDependencies, TypeFamilies, TypeInType, LambdaCase #-}
+module Godot.Gdnative.Types where
+
+import Control.Exception
+
+import qualified Data.ByteString as B
+import qualified Data.ByteString.Unsafe as B
+
+import Data.Text (Text)
+import qualified Data.Text.Encoding as T
+import Data.Colour
+import Data.Colour.SRGB
+import Data.Function ((&))
+
+import Data.Typeable
+
+import Foreign
+import Foreign.C
+
+import Linear
+
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Internal.TH
+
+import System.IO.Unsafe
+
+data LibType = GodotTy | HaskellTy
+
+type family TypeOf (x :: LibType) a
+-- I'm torn about this instance. Need TH if not using this
+type instance TypeOf 'GodotTy a = a
+
+-- |GodotFFI is a relation between low-level and high-level
+-- |Godot types, and conversions between them.
+class GodotFFI low high | low -> high where
+  fromLowLevel :: low -> IO high
+  toLowLevel :: high -> IO low
+
+type instance TypeOf 'HaskellTy GodotString = Text
+instance GodotFFI GodotString Text where
+  fromLowLevel str = godot_string_utf8 str >>= \cstr -> T.decodeUtf8 <$> fromCharString cstr
+    where
+      fromCharString cstr = do
+        len <- godot_char_string_length cstr
+        sptr <- godot_char_string_get_data cstr
+        B.packCStringLen (sptr, fromIntegral len)
+
+  toLowLevel txt = B.unsafeUseAsCStringLen bstr $ \(ptr, len) ->
+    godot_string_chars_to_utf8_with_len ptr (fromIntegral len)
+    where
+      bstr = T.encodeUtf8 txt
+
+type instance TypeOf 'HaskellTy GodotVector2 = V2 Float
+instance GodotFFI GodotVector2 (V2 Float) where
+  fromLowLevel v = V2 
+                   <$> (realToFrac <$> godot_vector2_get_x v)
+                   <*> (realToFrac <$> godot_vector2_get_y v)
+  toLowLevel (V2 x y) = godot_vector2_new (realToFrac x) (realToFrac y)
+
+
+type instance TypeOf 'HaskellTy GodotVector3 = V3 Float
+instance GodotFFI GodotVector3 (V3 Float) where
+  fromLowLevel v = V3 
+                   <$> (realToFrac <$> godot_vector3_get_axis v GodotVector3AxisX)
+                   <*> (realToFrac <$> godot_vector3_get_axis v GodotVector3AxisY)
+                   <*> (realToFrac <$> godot_vector3_get_axis v GodotVector3AxisZ)
+  toLowLevel (V3 x y z) = godot_vector3_new (realToFrac x) (realToFrac y) (realToFrac z)
+
+type instance TypeOf 'HaskellTy GodotQuat = Quaternion Float
+instance GodotFFI GodotQuat (Quaternion Float) where
+  fromLowLevel q = Quaternion
+                   <$> (realToFrac <$> godot_quat_get_w q)
+                   <*> (V3
+                        <$> (realToFrac <$> godot_quat_get_x q)
+                        <*> (realToFrac <$> godot_quat_get_y q)
+                        <*> (realToFrac <$> godot_quat_get_z q))
+  toLowLevel (Quaternion w (V3 x y z)) = godot_quat_new (realToFrac x)
+                                                        (realToFrac y)
+                                                        (realToFrac z)
+                                                        (realToFrac w)
+
+type Rect2 = M22 Float
+type instance TypeOf 'HaskellTy GodotRect2 = Rect2
+instance GodotFFI GodotRect2 Rect2 where
+  fromLowLevel r = V2
+                   <$> (fromLowLevel =<< godot_rect2_get_position r)
+                   <*> (fromLowLevel =<< godot_rect2_get_size r)
+  toLowLevel (V2 pos size) = do pos' <- toLowLevel pos
+                                size' <- toLowLevel size
+                                godot_rect2_new_with_position_and_size pos' size'
+
+type AABB = M23 Float
+type instance TypeOf 'HaskellTy GodotAabb = AABB
+instance GodotFFI GodotAabb AABB where
+  fromLowLevel aabb = V2
+                      <$> (fromLowLevel =<< godot_aabb_get_position aabb)
+                      <*> (fromLowLevel =<< godot_aabb_get_size aabb)
+  toLowLevel (V2 pos size) = do pos'  <- toLowLevel pos
+                                size' <- toLowLevel size
+                                godot_aabb_new pos' size'
+
+-- Axes X, Y and Z are represented by the int constants 0, 1 and 2 respectively (at least for Vector3):
+-- https://godot.readthedocs.io/en/latest/classes/class_vector3.html?highlight=axis#numeric-constants
+type Basis = M33 Float
+type instance TypeOf 'HaskellTy GodotBasis = Basis
+instance GodotFFI GodotBasis Basis where
+  fromLowLevel b = V3
+                   <$> (llAxis 0)
+                   <*> (llAxis 1)
+                   <*> (llAxis 2)
+                 where llAxis axis = fromLowLevel =<< godot_basis_get_axis b axis
+  toLowLevel (V3 x y z) = do x' <- toLowLevel x
+                             y' <- toLowLevel y
+                             z' <- toLowLevel z
+                             godot_basis_new_with_rows x' y' z'
+
+data Transform = TF { _tfBasis :: Basis, _tfPosition :: V3 Float }
+type instance TypeOf 'HaskellTy GodotTransform = Transform
+instance GodotFFI GodotTransform Transform where
+  fromLowLevel tf = TF
+                    <$> (fromLowLevel =<< godot_transform_get_basis tf)
+                    <*> (fromLowLevel =<< godot_transform_get_origin tf)
+  toLowLevel (TF basis orig) = do basis' <- toLowLevel basis
+                                  orig'  <- toLowLevel orig
+                                  godot_transform_new basis' orig'
+
+-- This should perhaps be better modeled - FilePath?
+type NodePath = Text
+type instance TypeOf 'HaskellTy GodotNodePath = NodePath
+instance GodotFFI GodotNodePath NodePath where
+  fromLowLevel np = fromLowLevel =<< godot_node_path_get_name np 0
+  toLowLevel np = godot_node_path_new =<< toLowLevel np
+
+type instance TypeOf 'HaskellTy GodotColor = AlphaColour Double
+instance GodotFFI GodotColor (AlphaColour Double) where
+  fromLowLevel c = withOpacity
+                   <$> (sRGB
+                        <$> (realToFrac <$> godot_color_get_r c)
+                        <*> (realToFrac <$> godot_color_get_g c)
+                        <*> (realToFrac <$> godot_color_get_b c))
+                   <*> (realToFrac <$> godot_color_get_a c)
+  toLowLevel rgba = toSRGB (rgba `over` black)
+                    & \(RGB r g b) ->
+                        godot_color_new_rgba
+                          (realToFrac r)
+                          (realToFrac g)
+                          (realToFrac b)
+                          (realToFrac $ alphaChannel rgba)
+
+
+-- Variants
+
+data Variant (ty :: LibType)
+  = VariantNil
+  | VariantBool !Bool
+  | VariantInt !Int
+  | VariantReal !Float
+  | VariantString !(TypeOf ty GodotString)
+  | VariantVector2 !(TypeOf ty GodotVector2)
+  | VariantRect2 !(TypeOf ty GodotRect2)
+  | VariantVector3 !(TypeOf ty GodotVector3)
+  | VariantTransform2d !(TypeOf ty GodotTransform2d)
+  | VariantPlane !(TypeOf ty GodotPlane)
+  | VariantQuat !(TypeOf ty GodotQuat)
+  | VariantAabb !(TypeOf ty GodotAabb)
+  | VariantBasis !(TypeOf ty GodotBasis)
+  | VariantTransform !(TypeOf ty GodotTransform)
+  | VariantColor !(TypeOf ty GodotColor)
+  | VariantNodePath !(TypeOf ty GodotNodePath)
+  | VariantRid !(TypeOf ty GodotRid)
+  | VariantObject !(TypeOf ty GodotObject)
+  | VariantDictionary !(TypeOf ty GodotDictionary)
+  | VariantArray !(TypeOf ty GodotArray)
+  | VariantPoolByteArray !(TypeOf ty GodotPoolByteArray)
+  | VariantPoolIntArray !(TypeOf ty GodotPoolIntArray)
+  | VariantPoolRealArray !(TypeOf ty GodotPoolRealArray)
+  | VariantPoolStringArray !(TypeOf ty GodotPoolStringArray)
+  | VariantPoolVector2Array !(TypeOf ty GodotPoolVector2Array)
+  | VariantPoolVector3Array !(TypeOf ty GodotPoolVector3Array)
+  | VariantPoolColorArray !(TypeOf ty GodotPoolColorArray)
+
+instance GodotFFI GodotVariant (Variant 'GodotTy) where
+  fromLowLevel var = godot_variant_get_type var >>= \case
+      GodotVariantTypeNil -> return VariantNil
+      GodotVariantTypeBool -> (VariantBool . (/= 0)) <$> godot_variant_as_bool var
+      GodotVariantTypeInt -> (VariantInt . fromIntegral) <$> godot_variant_as_int var
+      GodotVariantTypeReal -> (VariantReal . realToFrac) <$> godot_variant_as_real var
+      GodotVariantTypeString -> VariantString <$> godot_variant_as_string var
+      GodotVariantTypeVector2 -> VariantVector2 <$> godot_variant_as_vector2 var
+      GodotVariantTypeRect2 -> VariantRect2 <$> godot_variant_as_rect2 var
+      GodotVariantTypeVector3 -> VariantVector3 <$> godot_variant_as_vector3 var
+      GodotVariantTypeTransform2d -> VariantTransform2d <$> godot_variant_as_transform2d var
+      GodotVariantTypePlane -> VariantPlane <$> godot_variant_as_plane var
+      GodotVariantTypeQuat -> VariantQuat <$> godot_variant_as_quat var
+      GodotVariantTypeAabb -> VariantAabb <$> godot_variant_as_aabb var
+      GodotVariantTypeBasis -> VariantBasis <$> godot_variant_as_basis var
+      GodotVariantTypeTransform -> VariantTransform <$> godot_variant_as_transform var
+      GodotVariantTypeColor -> VariantColor <$> godot_variant_as_color var
+      GodotVariantTypeNodePath -> VariantNodePath <$> godot_variant_as_node_path var
+      GodotVariantTypeRid -> VariantRid <$> godot_variant_as_rid var
+      GodotVariantTypeObject -> VariantObject <$> godot_variant_as_object var
+      GodotVariantTypeDictionary -> VariantDictionary <$> godot_variant_as_dictionary var
+      GodotVariantTypeArray -> VariantArray <$> godot_variant_as_array var
+      GodotVariantTypePoolByteArray -> VariantPoolByteArray <$> godot_variant_as_pool_byte_array var
+      GodotVariantTypePoolIntArray -> VariantPoolIntArray <$> godot_variant_as_pool_int_array var
+      GodotVariantTypePoolRealArray -> VariantPoolRealArray <$> godot_variant_as_pool_real_array var
+      GodotVariantTypePoolStringArray -> VariantPoolStringArray <$> godot_variant_as_pool_string_array var
+      GodotVariantTypePoolVector2Array -> VariantPoolVector2Array <$> godot_variant_as_pool_vector2_array var
+      GodotVariantTypePoolVector3Array -> VariantPoolVector3Array <$> godot_variant_as_pool_vector3_array var
+      GodotVariantTypePoolColorArray -> VariantPoolColorArray <$> godot_variant_as_pool_color_array var
+  
+  toLowLevel VariantNil = godot_variant_new_nil
+  toLowLevel (VariantBool b) = godot_variant_new_bool . fromIntegral $ fromEnum b
+  toLowLevel (VariantInt i) = godot_variant_new_int (fromIntegral i)
+  toLowLevel (VariantReal r) = godot_variant_new_real (realToFrac r)
+  toLowLevel (VariantString x) = godot_variant_new_string x
+  toLowLevel (VariantVector2 x) = godot_variant_new_vector2 x
+  toLowLevel (VariantRect2 x) = godot_variant_new_rect2 x
+  toLowLevel (VariantVector3 x) = godot_variant_new_vector3 x
+  toLowLevel (VariantTransform2d x) = godot_variant_new_transform2d x
+  toLowLevel (VariantPlane x) = godot_variant_new_plane x
+  toLowLevel (VariantQuat x) = godot_variant_new_quat x
+  toLowLevel (VariantAabb x) = godot_variant_new_aabb x
+  toLowLevel (VariantBasis x) = godot_variant_new_basis x
+  toLowLevel (VariantTransform x) = godot_variant_new_transform x
+  toLowLevel (VariantColor x) = godot_variant_new_color x
+  toLowLevel (VariantNodePath x) = godot_variant_new_node_path x
+  toLowLevel (VariantRid x) = godot_variant_new_rid x
+  toLowLevel (VariantObject x) = godot_variant_new_object x
+  toLowLevel (VariantDictionary x) = godot_variant_new_dictionary x
+  toLowLevel (VariantArray x) = godot_variant_new_array x
+  toLowLevel (VariantPoolByteArray x) = godot_variant_new_pool_byte_array x
+  toLowLevel (VariantPoolIntArray x) = godot_variant_new_pool_int_array x
+  toLowLevel (VariantPoolRealArray x) = godot_variant_new_pool_real_array x
+  toLowLevel (VariantPoolStringArray x) = godot_variant_new_pool_string_array x
+  toLowLevel (VariantPoolVector2Array x) = godot_variant_new_pool_vector2_array x
+  toLowLevel (VariantPoolVector3Array x) = godot_variant_new_pool_vector3_array x
+  toLowLevel (VariantPoolColorArray x) = godot_variant_new_pool_color_array x
+
+withVariantArray :: [Variant 'GodotTy] -> ((Ptr (Ptr GodotVariant), CInt) -> IO a) -> IO a
+withVariantArray vars mtd =  allocaArray (length vars) $
+  \arrPtr ->  withVars vars 0 arrPtr mtd
+  where
+    withVars (x:xs) n arrPtr mtd = do
+      vt <- toLowLevel x
+      res <- withGodotVariant vt $ \vtPtr -> do
+        poke (advancePtr arrPtr n) vtPtr 
+        withVars xs (n+1) arrPtr mtd
+      godot_variant_destroy vt
+      return res
+    withVars [] n arrPtr mtd = mtd (arrPtr, fromIntegral n)
+
+throwIfErr :: GodotVariantCallError -> IO ()
+throwIfErr err = case variantCallErrorError err of
+  GodotCallErrorCallOk -> return ()
+  _ -> throwIO err
+  
+
+class AsVariant a where
+  toVariant :: a -> Variant 'GodotTy
+  fromVariant :: Variant 'GodotTy -> Maybe a
+
+instance AsVariant () where
+  toVariant _ = VariantNil
+  fromVariant VariantNil = Just ()
+  fromVariant _ = Nothing
+
+instance AsVariant GodotVariant where
+  toVariant v = unsafePerformIO $ fromLowLevel v 
+  fromVariant v = Just $ unsafePerformIO $ toLowLevel v 
+
+$(generateAsVariantInstances)
+
+
+fromGodotVariant :: forall a. (Typeable a, AsVariant a) => GodotVariant -> IO a
+fromGodotVariant var = do
+  res <- fromVariant <$> fromLowLevel var
+  case res of
+    Just x -> x `seq` return x
+    Nothing -> do
+      haveTy <-  godot_variant_get_type var 
+      let expTy = typeOf (undefined :: a)
+      error $ "Error in API: couldn't fromVariant. have: " ++ show haveTy ++ ", expected: " ++ show expTy
diff --git a/src/Godot/Internal/Dispatch.hs b/src/Godot/Internal/Dispatch.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Internal/Dispatch.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE UndecidableInstances, AllowAmbiguousTypes #-}
+module Godot.Internal.Dispatch where
+import Data.Kind
+import Data.Proxy
+import Data.Text (Text)
+import GHC.TypeLits as T
+import Godot.Gdnative.Internal.Gdnative
+
+-- | Establishes 'child` as a child of BaseClass child`
+class HasBaseClass child where
+  type BaseClass child
+  super :: child -> BaseClass child
+
+-- | Transitive subclass relation. You shouldn't need to define instances of this.
+class parent :< child where
+  safeCast :: child -> parent
+
+instance {-# OVERLAPPING #-} refl :< refl where
+  safeCast = id
+
+instance {-# OVERLAPPABLE #-} (HasBaseClass c, pp :< BaseClass c) => pp :< c where
+  safeCast = safeCast .  super
+
+-- |A class method 'name', overriden in 'cls', with signature 'sig'
+-- |Attempts to emulate C++/Godot's "virtual" single dispatch
+class Method (name :: Symbol) cls sig | cls name -> sig where
+  runMethod :: cls -> sig
+
+  
+
+instance {-# OVERLAPPABLE #-} (Method name (BaseClass child) sig, HasBaseClass child) 
+    => Method name child sig where
+  runMethod = runMethod @name . super
+
+-- this ensures termination for type errors
+-- fixes #4
+instance {-# OVERLAPPABLE #-} ( TypeError (T.Text "Couldn't find method " :<>: ShowType name
+                                          :<>: T.Text " with signature `" :<>: ShowType sig
+                                          :<>: T.Text "'.")
+                              , Method name GodotObject sig ) -- for fundeps
+    => Method name GodotObject sig where
+  runMethod = error "unreachable"
+
+newtype Signal a = Signal Text
+  deriving (Show, Eq)
diff --git a/src/Godot/Methods.hs b/src/Godot/Methods.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Methods.hs
@@ -0,0 +1,19047 @@
+module Godot.Methods where
+import Godot.Internal.Dispatch
+import Godot.Api.Auto
+
+_action_pressed :: Method "_action_pressed" cls sig => cls -> sig
+_action_pressed = runMethod @"_action_pressed"
+
+_add_blend_point :: Method "_add_blend_point" cls sig => cls -> sig
+_add_blend_point = runMethod @"_add_blend_point"
+
+_add_callback :: Method "_add_callback" cls sig => cls -> sig
+_add_callback = runMethod @"_add_callback"
+
+_add_peer :: Method "_add_peer" cls sig => cls -> sig
+_add_peer = runMethod @"_add_peer"
+
+_add_preset_pressed ::
+                      Method "_add_preset_pressed" cls sig => cls -> sig
+_add_preset_pressed = runMethod @"_add_preset_pressed"
+
+_animation_changed ::
+                     Method "_animation_changed" cls sig => cls -> sig
+_animation_changed = runMethod @"_animation_changed"
+
+_area_enter_tree :: Method "_area_enter_tree" cls sig => cls -> sig
+_area_enter_tree = runMethod @"_area_enter_tree"
+
+_area_exit_tree :: Method "_area_exit_tree" cls sig => cls -> sig
+_area_exit_tree = runMethod @"_area_exit_tree"
+
+_area_inout :: Method "_area_inout" cls sig => cls -> sig
+_area_inout = runMethod @"_area_inout"
+
+_autosave_scripts ::
+                    Method "_autosave_scripts" cls sig => cls -> sig
+_autosave_scripts = runMethod @"_autosave_scripts"
+
+_body_enter_tree :: Method "_body_enter_tree" cls sig => cls -> sig
+_body_enter_tree = runMethod @"_body_enter_tree"
+
+_body_exit_tree :: Method "_body_exit_tree" cls sig => cls -> sig
+_body_exit_tree = runMethod @"_body_exit_tree"
+
+_body_inout :: Method "_body_inout" cls sig => cls -> sig
+_body_inout = runMethod @"_body_inout"
+
+_breaked :: Method "_breaked" cls sig => cls -> sig
+_breaked = runMethod @"_breaked"
+
+_browse_path :: Method "_browse_path" cls sig => cls -> sig
+_browse_path = runMethod @"_browse_path"
+
+_built_in_pressed ::
+                    Method "_built_in_pressed" cls sig => cls -> sig
+_built_in_pressed = runMethod @"_built_in_pressed"
+
+_builtin_text_entered ::
+                        Method "_builtin_text_entered" cls sig => cls -> sig
+_builtin_text_entered = runMethod @"_builtin_text_entered"
+
+_bus_layout_changed ::
+                      Method "_bus_layout_changed" cls sig => cls -> sig
+_bus_layout_changed = runMethod @"_bus_layout_changed"
+
+_camera_moved :: Method "_camera_moved" cls sig => cls -> sig
+_camera_moved = runMethod @"_camera_moved"
+
+_cancel_pressed :: Method "_cancel_pressed" cls sig => cls -> sig
+_cancel_pressed = runMethod @"_cancel_pressed"
+
+_change_scene :: Method "_change_scene" cls sig => cls -> sig
+_change_scene = runMethod @"_change_scene"
+
+_child_minsize_changed ::
+                         Method "_child_minsize_changed" cls sig => cls -> sig
+_child_minsize_changed = runMethod @"_child_minsize_changed"
+
+_child_renamed_callback ::
+                          Method "_child_renamed_callback" cls sig => cls -> sig
+_child_renamed_callback = runMethod @"_child_renamed_callback"
+
+_class_name_changed ::
+                      Method "_class_name_changed" cls sig => cls -> sig
+_class_name_changed = runMethod @"_class_name_changed"
+
+_clear_caches :: Method "_clear_caches" cls sig => cls -> sig
+_clear_caches = runMethod @"_clear_caches"
+
+_clear_quadrants :: Method "_clear_quadrants" cls sig => cls -> sig
+_clear_quadrants = runMethod @"_clear_quadrants"
+
+_click_selection_held ::
+                        Method "_click_selection_held" cls sig => cls -> sig
+_click_selection_held = runMethod @"_click_selection_held"
+
+_clips_input :: Method "_clips_input" cls sig => cls -> sig
+_clips_input = runMethod @"_clips_input"
+
+_close_all_tabs :: Method "_close_all_tabs" cls sig => cls -> sig
+_close_all_tabs = runMethod @"_close_all_tabs"
+
+_close_current_tab ::
+                     Method "_close_current_tab" cls sig => cls -> sig
+_close_current_tab = runMethod @"_close_current_tab"
+
+_close_discard_current_tab ::
+                             Method "_close_discard_current_tab" cls sig => cls -> sig
+_close_discard_current_tab
+  = runMethod @"_close_discard_current_tab"
+
+_close_docs_tab :: Method "_close_docs_tab" cls sig => cls -> sig
+_close_docs_tab = runMethod @"_close_docs_tab"
+
+_close_other_tabs ::
+                    Method "_close_other_tabs" cls sig => cls -> sig
+_close_other_tabs = runMethod @"_close_other_tabs"
+
+_closed :: Method "_closed" cls sig => cls -> sig
+_closed = runMethod @"_closed"
+
+_color_changed :: Method "_color_changed" cls sig => cls -> sig
+_color_changed = runMethod @"_color_changed"
+
+_compute_cost :: Method "_compute_cost" cls sig => cls -> sig
+_compute_cost = runMethod @"_compute_cost"
+
+_connected_to_server ::
+                       Method "_connected_to_server" cls sig => cls -> sig
+_connected_to_server = runMethod @"_connected_to_server"
+
+_connection_failed ::
+                     Method "_connection_failed" cls sig => cls -> sig
+_connection_failed = runMethod @"_connection_failed"
+
+_connections_layer_draw ::
+                          Method "_connections_layer_draw" cls sig => cls -> sig
+_connections_layer_draw = runMethod @"_connections_layer_draw"
+
+_convert :: Method "_convert" cls sig => cls -> sig
+_convert = runMethod @"_convert"
+
+_converts_to :: Method "_converts_to" cls sig => cls -> sig
+_converts_to = runMethod @"_converts_to"
+
+_copy_script_path ::
+                    Method "_copy_script_path" cls sig => cls -> sig
+_copy_script_path = runMethod @"_copy_script_path"
+
+_cursor_changed_emit ::
+                       Method "_cursor_changed_emit" cls sig => cls -> sig
+_cursor_changed_emit = runMethod @"_cursor_changed_emit"
+
+_curve_changed :: Method "_curve_changed" cls sig => cls -> sig
+_curve_changed = runMethod @"_curve_changed"
+
+_custom_action :: Method "_custom_action" cls sig => cls -> sig
+_custom_action = runMethod @"_custom_action"
+
+_del_peer :: Method "_del_peer" cls sig => cls -> sig
+_del_peer = runMethod @"_del_peer"
+
+_dir_entered :: Method "_dir_entered" cls sig => cls -> sig
+_dir_entered = runMethod @"_dir_entered"
+
+_direct_state_changed ::
+                        Method "_direct_state_changed" cls sig => cls -> sig
+_direct_state_changed = runMethod @"_direct_state_changed"
+
+_drag_node_exit :: Method "_drag_node_exit" cls sig => cls -> sig
+_drag_node_exit = runMethod @"_drag_node_exit"
+
+_drag_node_input :: Method "_drag_node_input" cls sig => cls -> sig
+_drag_node_input = runMethod @"_drag_node_input"
+
+_draw :: Method "_draw" cls sig => cls -> sig
+_draw = runMethod @"_draw"
+
+_draw_soft_mesh :: Method "_draw_soft_mesh" cls sig => cls -> sig
+_draw_soft_mesh = runMethod @"_draw_soft_mesh"
+
+_drop_files :: Method "_drop_files" cls sig => cls -> sig
+_drop_files = runMethod @"_drop_files"
+
+_edit_get_pivot :: Method "_edit_get_pivot" cls sig => cls -> sig
+_edit_get_pivot = runMethod @"_edit_get_pivot"
+
+_edit_get_position ::
+                     Method "_edit_get_position" cls sig => cls -> sig
+_edit_get_position = runMethod @"_edit_get_position"
+
+_edit_get_rect :: Method "_edit_get_rect" cls sig => cls -> sig
+_edit_get_rect = runMethod @"_edit_get_rect"
+
+_edit_get_rotation ::
+                     Method "_edit_get_rotation" cls sig => cls -> sig
+_edit_get_rotation = runMethod @"_edit_get_rotation"
+
+_edit_get_scale :: Method "_edit_get_scale" cls sig => cls -> sig
+_edit_get_scale = runMethod @"_edit_get_scale"
+
+_edit_get_state :: Method "_edit_get_state" cls sig => cls -> sig
+_edit_get_state = runMethod @"_edit_get_state"
+
+_edit_request_change ::
+                       Method "_edit_request_change" cls sig => cls -> sig
+_edit_request_change = runMethod @"_edit_request_change"
+
+_edit_set_pivot :: Method "_edit_set_pivot" cls sig => cls -> sig
+_edit_set_pivot = runMethod @"_edit_set_pivot"
+
+_edit_set_position ::
+                     Method "_edit_set_position" cls sig => cls -> sig
+_edit_set_position = runMethod @"_edit_set_position"
+
+_edit_set_rect :: Method "_edit_set_rect" cls sig => cls -> sig
+_edit_set_rect = runMethod @"_edit_set_rect"
+
+_edit_set_rotation ::
+                     Method "_edit_set_rotation" cls sig => cls -> sig
+_edit_set_rotation = runMethod @"_edit_set_rotation"
+
+_edit_set_scale :: Method "_edit_set_scale" cls sig => cls -> sig
+_edit_set_scale = runMethod @"_edit_set_scale"
+
+_edit_set_state :: Method "_edit_set_state" cls sig => cls -> sig
+_edit_set_state = runMethod @"_edit_set_state"
+
+_edit_use_pivot :: Method "_edit_use_pivot" cls sig => cls -> sig
+_edit_use_pivot = runMethod @"_edit_use_pivot"
+
+_edit_use_rect :: Method "_edit_use_rect" cls sig => cls -> sig
+_edit_use_rect = runMethod @"_edit_use_rect"
+
+_edit_use_rotation ::
+                     Method "_edit_use_rotation" cls sig => cls -> sig
+_edit_use_rotation = runMethod @"_edit_use_rotation"
+
+_editor_pause :: Method "_editor_pause" cls sig => cls -> sig
+_editor_pause = runMethod @"_editor_pause"
+
+_editor_play :: Method "_editor_play" cls sig => cls -> sig
+_editor_play = runMethod @"_editor_play"
+
+_editor_settings_changed ::
+                           Method "_editor_settings_changed" cls sig => cls -> sig
+_editor_settings_changed = runMethod @"_editor_settings_changed"
+
+_editor_stop :: Method "_editor_stop" cls sig => cls -> sig
+_editor_stop = runMethod @"_editor_stop"
+
+_emit_change :: Method "_emit_change" cls sig => cls -> sig
+_emit_change = runMethod @"_emit_change"
+
+_emit_theme_changed ::
+                      Method "_emit_theme_changed" cls sig => cls -> sig
+_emit_theme_changed = runMethod @"_emit_theme_changed"
+
+_enter_tree :: Method "_enter_tree" cls sig => cls -> sig
+_enter_tree = runMethod @"_enter_tree"
+
+_estimate_cost :: Method "_estimate_cost" cls sig => cls -> sig
+_estimate_cost = runMethod @"_estimate_cost"
+
+_exit_tree :: Method "_exit_tree" cls sig => cls -> sig
+_exit_tree = runMethod @"_exit_tree"
+
+_export_begin :: Method "_export_begin" cls sig => cls -> sig
+_export_begin = runMethod @"_export_begin"
+
+_export_file :: Method "_export_file" cls sig => cls -> sig
+_export_file = runMethod @"_export_file"
+
+_favorite_move_down ::
+                      Method "_favorite_move_down" cls sig => cls -> sig
+_favorite_move_down = runMethod @"_favorite_move_down"
+
+_favorite_move_up ::
+                    Method "_favorite_move_up" cls sig => cls -> sig
+_favorite_move_up = runMethod @"_favorite_move_up"
+
+_favorite_selected ::
+                     Method "_favorite_selected" cls sig => cls -> sig
+_favorite_selected = runMethod @"_favorite_selected"
+
+_favorite_toggled ::
+                    Method "_favorite_toggled" cls sig => cls -> sig
+_favorite_toggled = runMethod @"_favorite_toggled"
+
+_file_dialog_action ::
+                      Method "_file_dialog_action" cls sig => cls -> sig
+_file_dialog_action = runMethod @"_file_dialog_action"
+
+_file_entered :: Method "_file_entered" cls sig => cls -> sig
+_file_entered = runMethod @"_file_entered"
+
+_file_selected :: Method "_file_selected" cls sig => cls -> sig
+_file_selected = runMethod @"_file_selected"
+
+_filter_changed :: Method "_filter_changed" cls sig => cls -> sig
+_filter_changed = runMethod @"_filter_changed"
+
+_filter_selected :: Method "_filter_selected" cls sig => cls -> sig
+_filter_selected = runMethod @"_filter_selected"
+
+_finalize :: Method "_finalize" cls sig => cls -> sig
+_finalize = runMethod @"_finalize"
+
+_focus_enter :: Method "_focus_enter" cls sig => cls -> sig
+_focus_enter = runMethod @"_focus_enter"
+
+_focus_exit :: Method "_focus_exit" cls sig => cls -> sig
+_focus_exit = runMethod @"_focus_exit"
+
+_focusable_focused ::
+                     Method "_focusable_focused" cls sig => cls -> sig
+_focusable_focused = runMethod @"_focusable_focused"
+
+_focused :: Method "_focused" cls sig => cls -> sig
+_focused = runMethod @"_focused"
+
+_font_changed :: Method "_font_changed" cls sig => cls -> sig
+_font_changed = runMethod @"_font_changed"
+
+_forward_subtile_selection ::
+                             Method "_forward_subtile_selection" cls sig => cls -> sig
+_forward_subtile_selection
+  = runMethod @"_forward_subtile_selection"
+
+_generate_texture ::
+                    Method "_generate_texture" cls sig => cls -> sig
+_generate_texture = runMethod @"_generate_texture"
+
+_get :: Method "_get" cls sig => cls -> sig
+_get = runMethod @"_get"
+
+_get_angular_hi_limit_x ::
+                          Method "_get_angular_hi_limit_x" cls sig => cls -> sig
+_get_angular_hi_limit_x = runMethod @"_get_angular_hi_limit_x"
+
+_get_angular_hi_limit_y ::
+                          Method "_get_angular_hi_limit_y" cls sig => cls -> sig
+_get_angular_hi_limit_y = runMethod @"_get_angular_hi_limit_y"
+
+_get_angular_hi_limit_z ::
+                          Method "_get_angular_hi_limit_z" cls sig => cls -> sig
+_get_angular_hi_limit_z = runMethod @"_get_angular_hi_limit_z"
+
+_get_angular_lo_limit_x ::
+                          Method "_get_angular_lo_limit_x" cls sig => cls -> sig
+_get_angular_lo_limit_x = runMethod @"_get_angular_lo_limit_x"
+
+_get_angular_lo_limit_y ::
+                          Method "_get_angular_lo_limit_y" cls sig => cls -> sig
+_get_angular_lo_limit_y = runMethod @"_get_angular_lo_limit_y"
+
+_get_angular_lo_limit_z ::
+                          Method "_get_angular_lo_limit_z" cls sig => cls -> sig
+_get_angular_lo_limit_z = runMethod @"_get_angular_lo_limit_z"
+
+_get_animations :: Method "_get_animations" cls sig => cls -> sig
+_get_animations = runMethod @"_get_animations"
+
+_get_argument_cache ::
+                      Method "_get_argument_cache" cls sig => cls -> sig
+_get_argument_cache = runMethod @"_get_argument_cache"
+
+_get_bones :: Method "_get_bones" cls sig => cls -> sig
+_get_bones = runMethod @"_get_bones"
+
+_get_bundled_scene ::
+                     Method "_get_bundled_scene" cls sig => cls -> sig
+_get_bundled_scene = runMethod @"_get_bundled_scene"
+
+_get_caption :: Method "_get_caption" cls sig => cls -> sig
+_get_caption = runMethod @"_get_caption"
+
+_get_category :: Method "_get_category" cls sig => cls -> sig
+_get_category = runMethod @"_get_category"
+
+_get_chars :: Method "_get_chars" cls sig => cls -> sig
+_get_chars = runMethod @"_get_chars"
+
+_get_color_array :: Method "_get_color_array" cls sig => cls -> sig
+_get_color_array = runMethod @"_get_color_array"
+
+_get_configuration_warning ::
+                             Method "_get_configuration_warning" cls sig => cls -> sig
+_get_configuration_warning
+  = runMethod @"_get_configuration_warning"
+
+_get_custom_data_array ::
+                         Method "_get_custom_data_array" cls sig => cls -> sig
+_get_custom_data_array = runMethod @"_get_custom_data_array"
+
+_get_data :: Method "_get_data" cls sig => cls -> sig
+_get_data = runMethod @"_get_data"
+
+_get_debug_tooltip ::
+                     Method "_get_debug_tooltip" cls sig => cls -> sig
+_get_debug_tooltip = runMethod @"_get_debug_tooltip"
+
+_get_default_input_values ::
+                            Method "_get_default_input_values" cls sig => cls -> sig
+_get_default_input_values = runMethod @"_get_default_input_values"
+
+_get_elem_cache :: Method "_get_elem_cache" cls sig => cls -> sig
+_get_elem_cache = runMethod @"_get_elem_cache"
+
+_get_extensions :: Method "_get_extensions" cls sig => cls -> sig
+_get_extensions = runMethod @"_get_extensions"
+
+_get_filters :: Method "_get_filters" cls sig => cls -> sig
+_get_filters = runMethod @"_get_filters"
+
+_get_frames :: Method "_get_frames" cls sig => cls -> sig
+_get_frames = runMethod @"_get_frames"
+
+_get_import_flags ::
+                    Method "_get_import_flags" cls sig => cls -> sig
+_get_import_flags = runMethod @"_get_import_flags"
+
+_get_import_path :: Method "_get_import_path" cls sig => cls -> sig
+_get_import_path = runMethod @"_get_import_path"
+
+_get_input_value_port_count ::
+                              Method "_get_input_value_port_count" cls sig => cls -> sig
+_get_input_value_port_count
+  = runMethod @"_get_input_value_port_count"
+
+_get_input_value_port_name ::
+                             Method "_get_input_value_port_name" cls sig => cls -> sig
+_get_input_value_port_name
+  = runMethod @"_get_input_value_port_name"
+
+_get_input_value_port_type ::
+                             Method "_get_input_value_port_type" cls sig => cls -> sig
+_get_input_value_port_type
+  = runMethod @"_get_input_value_port_type"
+
+_get_items :: Method "_get_items" cls sig => cls -> sig
+_get_items = runMethod @"_get_items"
+
+_get_kernings :: Method "_get_kernings" cls sig => cls -> sig
+_get_kernings = runMethod @"_get_kernings"
+
+_get_layers :: Method "_get_layers" cls sig => cls -> sig
+_get_layers = runMethod @"_get_layers"
+
+_get_lower_limit :: Method "_get_lower_limit" cls sig => cls -> sig
+_get_lower_limit = runMethod @"_get_lower_limit"
+
+_get_lower_limit_angular ::
+                           Method "_get_lower_limit_angular" cls sig => cls -> sig
+_get_lower_limit_angular = runMethod @"_get_lower_limit_angular"
+
+_get_messages :: Method "_get_messages" cls sig => cls -> sig
+_get_messages = runMethod @"_get_messages"
+
+_get_minimum_size ::
+                    Method "_get_minimum_size" cls sig => cls -> sig
+_get_minimum_size = runMethod @"_get_minimum_size"
+
+_get_old_cell_size ::
+                     Method "_get_old_cell_size" cls sig => cls -> sig
+_get_old_cell_size = runMethod @"_get_old_cell_size"
+
+_get_outlines :: Method "_get_outlines" cls sig => cls -> sig
+_get_outlines = runMethod @"_get_outlines"
+
+_get_output_sequence_port_count ::
+                                  Method "_get_output_sequence_port_count" cls sig => cls -> sig
+_get_output_sequence_port_count
+  = runMethod @"_get_output_sequence_port_count"
+
+_get_output_sequence_port_text ::
+                                 Method "_get_output_sequence_port_text" cls sig => cls -> sig
+_get_output_sequence_port_text
+  = runMethod @"_get_output_sequence_port_text"
+
+_get_output_value_port_count ::
+                               Method "_get_output_value_port_count" cls sig => cls -> sig
+_get_output_value_port_count
+  = runMethod @"_get_output_value_port_count"
+
+_get_output_value_port_name ::
+                              Method "_get_output_value_port_name" cls sig => cls -> sig
+_get_output_value_port_name
+  = runMethod @"_get_output_value_port_name"
+
+_get_output_value_port_type ::
+                              Method "_get_output_value_port_type" cls sig => cls -> sig
+_get_output_value_port_type
+  = runMethod @"_get_output_value_port_type"
+
+_get_polygons :: Method "_get_polygons" cls sig => cls -> sig
+_get_polygons = runMethod @"_get_polygons"
+
+_get_property_list ::
+                     Method "_get_property_list" cls sig => cls -> sig
+_get_property_list = runMethod @"_get_property_list"
+
+_get_resources :: Method "_get_resources" cls sig => cls -> sig
+_get_resources = runMethod @"_get_resources"
+
+_get_swing_span :: Method "_get_swing_span" cls sig => cls -> sig
+_get_swing_span = runMethod @"_get_swing_span"
+
+_get_text :: Method "_get_text" cls sig => cls -> sig
+_get_text = runMethod @"_get_text"
+
+_get_textures :: Method "_get_textures" cls sig => cls -> sig
+_get_textures = runMethod @"_get_textures"
+
+_get_tile_data :: Method "_get_tile_data" cls sig => cls -> sig
+_get_tile_data = runMethod @"_get_tile_data"
+
+_get_tooltip :: Method "_get_tooltip" cls sig => cls -> sig
+_get_tooltip = runMethod @"_get_tooltip"
+
+_get_transform_array ::
+                       Method "_get_transform_array" cls sig => cls -> sig
+_get_transform_array = runMethod @"_get_transform_array"
+
+_get_triangles :: Method "_get_triangles" cls sig => cls -> sig
+_get_triangles = runMethod @"_get_triangles"
+
+_get_twist_span :: Method "_get_twist_span" cls sig => cls -> sig
+_get_twist_span = runMethod @"_get_twist_span"
+
+_get_type_cache :: Method "_get_type_cache" cls sig => cls -> sig
+_get_type_cache = runMethod @"_get_type_cache"
+
+_get_upper_limit :: Method "_get_upper_limit" cls sig => cls -> sig
+_get_upper_limit = runMethod @"_get_upper_limit"
+
+_get_upper_limit_angular ::
+                           Method "_get_upper_limit_angular" cls sig => cls -> sig
+_get_upper_limit_angular = runMethod @"_get_upper_limit_angular"
+
+_get_user_data :: Method "_get_user_data" cls sig => cls -> sig
+_get_user_data = runMethod @"_get_user_data"
+
+_get_visual_instance_rid ::
+                           Method "_get_visual_instance_rid" cls sig => cls -> sig
+_get_visual_instance_rid = runMethod @"_get_visual_instance_rid"
+
+_get_working_memory_size ::
+                           Method "_get_working_memory_size" cls sig => cls -> sig
+_get_working_memory_size = runMethod @"_get_working_memory_size"
+
+_go_back :: Method "_go_back" cls sig => cls -> sig
+_go_back = runMethod @"_go_back"
+
+_go_forward :: Method "_go_forward" cls sig => cls -> sig
+_go_forward = runMethod @"_go_forward"
+
+_go_up :: Method "_go_up" cls sig => cls -> sig
+_go_up = runMethod @"_go_up"
+
+_goto_script_line ::
+                    Method "_goto_script_line" cls sig => cls -> sig
+_goto_script_line = runMethod @"_goto_script_line"
+
+_goto_script_line2 ::
+                     Method "_goto_script_line2" cls sig => cls -> sig
+_goto_script_line2 = runMethod @"_goto_script_line2"
+
+_gradient_changed ::
+                    Method "_gradient_changed" cls sig => cls -> sig
+_gradient_changed = runMethod @"_gradient_changed"
+
+_graph_node_moved ::
+                    Method "_graph_node_moved" cls sig => cls -> sig
+_graph_node_moved = runMethod @"_graph_node_moved"
+
+_graph_node_raised ::
+                     Method "_graph_node_raised" cls sig => cls -> sig
+_graph_node_raised = runMethod @"_graph_node_raised"
+
+_gui_input :: Method "_gui_input" cls sig => cls -> sig
+_gui_input = runMethod @"_gui_input"
+
+_gui_remove_focus ::
+                    Method "_gui_remove_focus" cls sig => cls -> sig
+_gui_remove_focus = runMethod @"_gui_remove_focus"
+
+_gui_show_tooltip ::
+                    Method "_gui_show_tooltip" cls sig => cls -> sig
+_gui_show_tooltip = runMethod @"_gui_show_tooltip"
+
+_has_editable_3d_polygon_no_depth ::
+                                    Method "_has_editable_3d_polygon_no_depth" cls sig => cls -> sig
+_has_editable_3d_polygon_no_depth
+  = runMethod @"_has_editable_3d_polygon_no_depth"
+
+_has_input_sequence_port ::
+                           Method "_has_input_sequence_port" cls sig => cls -> sig
+_has_input_sequence_port = runMethod @"_has_input_sequence_port"
+
+_help_class_goto :: Method "_help_class_goto" cls sig => cls -> sig
+_help_class_goto = runMethod @"_help_class_goto"
+
+_help_class_open :: Method "_help_class_open" cls sig => cls -> sig
+_help_class_open = runMethod @"_help_class_open"
+
+_help_index :: Method "_help_index" cls sig => cls -> sig
+_help_index = runMethod @"_help_index"
+
+_help_overview_selected ::
+                          Method "_help_overview_selected" cls sig => cls -> sig
+_help_overview_selected = runMethod @"_help_overview_selected"
+
+_help_search :: Method "_help_search" cls sig => cls -> sig
+_help_search = runMethod @"_help_search"
+
+_history_back :: Method "_history_back" cls sig => cls -> sig
+_history_back = runMethod @"_history_back"
+
+_history_forward :: Method "_history_forward" cls sig => cls -> sig
+_history_forward = runMethod @"_history_forward"
+
+_hsv_draw :: Method "_hsv_draw" cls sig => cls -> sig
+_hsv_draw = runMethod @"_hsv_draw"
+
+_html_entered :: Method "_html_entered" cls sig => cls -> sig
+_html_entered = runMethod @"_html_entered"
+
+_html_focus_exit :: Method "_html_focus_exit" cls sig => cls -> sig
+_html_focus_exit = runMethod @"_html_focus_exit"
+
+_idle :: Method "_idle" cls sig => cls -> sig
+_idle = runMethod @"_idle"
+
+_im_update :: Method "_im_update" cls sig => cls -> sig
+_im_update = runMethod @"_im_update"
+
+_import_animation ::
+                    Method "_import_animation" cls sig => cls -> sig
+_import_animation = runMethod @"_import_animation"
+
+_import_scene :: Method "_import_scene" cls sig => cls -> sig
+_import_scene = runMethod @"_import_scene"
+
+_init :: Method "_init" cls sig => cls -> sig
+_init = runMethod @"_init"
+
+_initialize :: Method "_initialize" cls sig => cls -> sig
+_initialize = runMethod @"_initialize"
+
+_input :: Method "_input" cls sig => cls -> sig
+_input = runMethod @"_input"
+
+_input_event :: Method "_input_event" cls sig => cls -> sig
+_input_event = runMethod @"_input_event"
+
+_input_text :: Method "_input_text" cls sig => cls -> sig
+_input_text = runMethod @"_input_text"
+
+_input_type_changed ::
+                      Method "_input_type_changed" cls sig => cls -> sig
+_input_type_changed = runMethod @"_input_type_changed"
+
+_integrate_forces ::
+                    Method "_integrate_forces" cls sig => cls -> sig
+_integrate_forces = runMethod @"_integrate_forces"
+
+_is_active :: Method "_is_active" cls sig => cls -> sig
+_is_active = runMethod @"_is_active"
+
+_is_dictionary :: Method "_is_dictionary" cls sig => cls -> sig
+_is_dictionary = runMethod @"_is_dictionary"
+
+_is_editable_3d_polygon ::
+                          Method "_is_editable_3d_polygon" cls sig => cls -> sig
+_is_editable_3d_polygon = runMethod @"_is_editable_3d_polygon"
+
+_is_on_top :: Method "_is_on_top" cls sig => cls -> sig
+_is_on_top = runMethod @"_is_on_top"
+
+_is_playing :: Method "_is_playing" cls sig => cls -> sig
+_is_playing = runMethod @"_is_playing"
+
+_is_tile_bound :: Method "_is_tile_bound" cls sig => cls -> sig
+_is_tile_bound = runMethod @"_is_tile_bound"
+
+_item_db_selected ::
+                    Method "_item_db_selected" cls sig => cls -> sig
+_item_db_selected = runMethod @"_item_db_selected"
+
+_item_list_item_rmb_selected ::
+                               Method "_item_list_item_rmb_selected" cls sig => cls -> sig
+_item_list_item_rmb_selected
+  = runMethod @"_item_list_item_rmb_selected"
+
+_item_list_rmb_clicked ::
+                         Method "_item_list_rmb_clicked" cls sig => cls -> sig
+_item_list_rmb_clicked = runMethod @"_item_list_rmb_clicked"
+
+_item_menu_id_pressed ::
+                        Method "_item_menu_id_pressed" cls sig => cls -> sig
+_item_menu_id_pressed = runMethod @"_item_menu_id_pressed"
+
+_item_selected :: Method "_item_selected" cls sig => cls -> sig
+_item_selected = runMethod @"_item_selected"
+
+_items_clear_selection ::
+                         Method "_items_clear_selection" cls sig => cls -> sig
+_items_clear_selection = runMethod @"_items_clear_selection"
+
+_iter_get :: Method "_iter_get" cls sig => cls -> sig
+_iter_get = runMethod @"_iter_get"
+
+_iter_init :: Method "_iter_init" cls sig => cls -> sig
+_iter_init = runMethod @"_iter_init"
+
+_iter_next :: Method "_iter_next" cls sig => cls -> sig
+_iter_next = runMethod @"_iter_next"
+
+_iteration :: Method "_iteration" cls sig => cls -> sig
+_iteration = runMethod @"_iteration"
+
+_lang_changed :: Method "_lang_changed" cls sig => cls -> sig
+_lang_changed = runMethod @"_lang_changed"
+
+_line_edit_focus_exit ::
+                        Method "_line_edit_focus_exit" cls sig => cls -> sig
+_line_edit_focus_exit = runMethod @"_line_edit_focus_exit"
+
+_line_edit_input :: Method "_line_edit_input" cls sig => cls -> sig
+_line_edit_input = runMethod @"_line_edit_input"
+
+_live_auto_reload_running_scripts ::
+                                    Method "_live_auto_reload_running_scripts" cls sig => cls -> sig
+_live_auto_reload_running_scripts
+  = runMethod @"_live_auto_reload_running_scripts"
+
+_make_current :: Method "_make_current" cls sig => cls -> sig
+_make_current = runMethod @"_make_current"
+
+_make_custom_tooltip ::
+                       Method "_make_custom_tooltip" cls sig => cls -> sig
+_make_custom_tooltip = runMethod @"_make_custom_tooltip"
+
+_make_dir :: Method "_make_dir" cls sig => cls -> sig
+_make_dir = runMethod @"_make_dir"
+
+_make_dir_confirm ::
+                    Method "_make_dir_confirm" cls sig => cls -> sig
+_make_dir_confirm = runMethod @"_make_dir_confirm"
+
+_members_overview_selected ::
+                             Method "_members_overview_selected" cls sig => cls -> sig
+_members_overview_selected
+  = runMethod @"_members_overview_selected"
+
+_menu_option :: Method "_menu_option" cls sig => cls -> sig
+_menu_option = runMethod @"_menu_option"
+
+_mesh_changed :: Method "_mesh_changed" cls sig => cls -> sig
+_mesh_changed = runMethod @"_mesh_changed"
+
+_modal_closed :: Method "_modal_closed" cls sig => cls -> sig
+_modal_closed = runMethod @"_modal_closed"
+
+_multi_selected :: Method "_multi_selected" cls sig => cls -> sig
+_multi_selected = runMethod @"_multi_selected"
+
+_multiple_properties_changed ::
+                               Method "_multiple_properties_changed" cls sig => cls -> sig
+_multiple_properties_changed
+  = runMethod @"_multiple_properties_changed"
+
+_navpoly_changed :: Method "_navpoly_changed" cls sig => cls -> sig
+_navpoly_changed = runMethod @"_navpoly_changed"
+
+_network_peer_connected ::
+                          Method "_network_peer_connected" cls sig => cls -> sig
+_network_peer_connected = runMethod @"_network_peer_connected"
+
+_network_peer_disconnected ::
+                             Method "_network_peer_disconnected" cls sig => cls -> sig
+_network_peer_disconnected
+  = runMethod @"_network_peer_disconnected"
+
+_node_changed :: Method "_node_changed" cls sig => cls -> sig
+_node_changed = runMethod @"_node_changed"
+
+_node_ports_changed ::
+                      Method "_node_ports_changed" cls sig => cls -> sig
+_node_ports_changed = runMethod @"_node_ports_changed"
+
+_node_removed :: Method "_node_removed" cls sig => cls -> sig
+_node_removed = runMethod @"_node_removed"
+
+_notification :: Method "_notification" cls sig => cls -> sig
+_notification = runMethod @"_notification"
+
+_object_id_selected ::
+                      Method "_object_id_selected" cls sig => cls -> sig
+_object_id_selected = runMethod @"_object_id_selected"
+
+_ok :: Method "_ok" cls sig => cls -> sig
+_ok = runMethod @"_ok"
+
+_on_find_in_files_modified_files ::
+                                   Method "_on_find_in_files_modified_files" cls sig => cls -> sig
+_on_find_in_files_modified_files
+  = runMethod @"_on_find_in_files_modified_files"
+
+_on_find_in_files_requested ::
+                              Method "_on_find_in_files_requested" cls sig => cls -> sig
+_on_find_in_files_requested
+  = runMethod @"_on_find_in_files_requested"
+
+_on_find_in_files_result_selected ::
+                                    Method "_on_find_in_files_result_selected" cls sig => cls -> sig
+_on_find_in_files_result_selected
+  = runMethod @"_on_find_in_files_result_selected"
+
+_on_theme_changed ::
+                    Method "_on_theme_changed" cls sig => cls -> sig
+_on_theme_changed = runMethod @"_on_theme_changed"
+
+_open_recent_script ::
+                      Method "_open_recent_script" cls sig => cls -> sig
+_open_recent_script = runMethod @"_open_recent_script"
+
+_parent_name_changed ::
+                       Method "_parent_name_changed" cls sig => cls -> sig
+_parent_name_changed = runMethod @"_parent_name_changed"
+
+_path_changed :: Method "_path_changed" cls sig => cls -> sig
+_path_changed = runMethod @"_path_changed"
+
+_path_entered :: Method "_path_entered" cls sig => cls -> sig
+_path_entered = runMethod @"_path_entered"
+
+_path_exited :: Method "_path_exited" cls sig => cls -> sig
+_path_exited = runMethod @"_path_exited"
+
+_physics_process :: Method "_physics_process" cls sig => cls -> sig
+_physics_process = runMethod @"_physics_process"
+
+_poly_changed :: Method "_poly_changed" cls sig => cls -> sig
+_poly_changed = runMethod @"_poly_changed"
+
+_popup_select :: Method "_popup_select" cls sig => cls -> sig
+_popup_select = runMethod @"_popup_select"
+
+_post_gui_grab_click_focus ::
+                             Method "_post_gui_grab_click_focus" cls sig => cls -> sig
+_post_gui_grab_click_focus
+  = runMethod @"_post_gui_grab_click_focus"
+
+_preset_input :: Method "_preset_input" cls sig => cls -> sig
+_preset_input = runMethod @"_preset_input"
+
+_pressed :: Method "_pressed" cls sig => cls -> sig
+_pressed = runMethod @"_pressed"
+
+_preview_ready :: Method "_preview_ready" cls sig => cls -> sig
+_preview_ready = runMethod @"_preview_ready"
+
+_process :: Method "_process" cls sig => cls -> sig
+_process = runMethod @"_process"
+
+_property_changed ::
+                    Method "_property_changed" cls sig => cls -> sig
+_property_changed = runMethod @"_property_changed"
+
+_property_changed_update_all ::
+                               Method "_property_changed_update_all" cls sig => cls -> sig
+_property_changed_update_all
+  = runMethod @"_property_changed_update_all"
+
+_property_checked ::
+                    Method "_property_checked" cls sig => cls -> sig
+_property_checked = runMethod @"_property_checked"
+
+_property_keyed :: Method "_property_keyed" cls sig => cls -> sig
+_property_keyed = runMethod @"_property_keyed"
+
+_property_keyed_with_value ::
+                             Method "_property_keyed_with_value" cls sig => cls -> sig
+_property_keyed_with_value
+  = runMethod @"_property_keyed_with_value"
+
+_property_selected ::
+                     Method "_property_selected" cls sig => cls -> sig
+_property_selected = runMethod @"_property_selected"
+
+_proximity_group_broadcast ::
+                             Method "_proximity_group_broadcast" cls sig => cls -> sig
+_proximity_group_broadcast
+  = runMethod @"_proximity_group_broadcast"
+
+_push_current_op :: Method "_push_current_op" cls sig => cls -> sig
+_push_current_op = runMethod @"_push_current_op"
+
+_queue_update :: Method "_queue_update" cls sig => cls -> sig
+_queue_update = runMethod @"_queue_update"
+
+_range_click_timeout ::
+                       Method "_range_click_timeout" cls sig => cls -> sig
+_range_click_timeout = runMethod @"_range_click_timeout"
+
+_ready :: Method "_ready" cls sig => cls -> sig
+_ready = runMethod @"_ready"
+
+_recent_selected :: Method "_recent_selected" cls sig => cls -> sig
+_recent_selected = runMethod @"_recent_selected"
+
+_recreate_quadrants ::
+                      Method "_recreate_quadrants" cls sig => cls -> sig
+_recreate_quadrants = runMethod @"_recreate_quadrants"
+
+_redirect_request ::
+                    Method "_redirect_request" cls sig => cls -> sig
+_redirect_request = runMethod @"_redirect_request"
+
+_reload_hook :: Method "_reload_hook" cls sig => cls -> sig
+_reload_hook = runMethod @"_reload_hook"
+
+_reload_physics_characteristics ::
+                                  Method "_reload_physics_characteristics" cls sig => cls -> sig
+_reload_physics_characteristics
+  = runMethod @"_reload_physics_characteristics"
+
+_reload_scripts :: Method "_reload_scripts" cls sig => cls -> sig
+_reload_scripts = runMethod @"_reload_scripts"
+
+_remove_by_uid :: Method "_remove_by_uid" cls sig => cls -> sig
+_remove_by_uid = runMethod @"_remove_by_uid"
+
+_request_done :: Method "_request_done" cls sig => cls -> sig
+_request_done = runMethod @"_request_done"
+
+_request_help :: Method "_request_help" cls sig => cls -> sig
+_request_help = runMethod @"_request_help"
+
+_res_changed :: Method "_res_changed" cls sig => cls -> sig
+_res_changed = runMethod @"_res_changed"
+
+_res_saved_callback ::
+                      Method "_res_saved_callback" cls sig => cls -> sig
+_res_saved_callback = runMethod @"_res_saved_callback"
+
+_resave_scripts :: Method "_resave_scripts" cls sig => cls -> sig
+_resave_scripts = runMethod @"_resave_scripts"
+
+_resource_selected ::
+                     Method "_resource_selected" cls sig => cls -> sig
+_resource_selected = runMethod @"_resource_selected"
+
+_run :: Method "_run" cls sig => cls -> sig
+_run = runMethod @"_run"
+
+_sample_draw :: Method "_sample_draw" cls sig => cls -> sig
+_sample_draw = runMethod @"_sample_draw"
+
+_save_confirm_pressed ::
+                        Method "_save_confirm_pressed" cls sig => cls -> sig
+_save_confirm_pressed = runMethod @"_save_confirm_pressed"
+
+_save_history :: Method "_save_history" cls sig => cls -> sig
+_save_history = runMethod @"_save_history"
+
+_screen_input :: Method "_screen_input" cls sig => cls -> sig
+_screen_input = runMethod @"_screen_input"
+
+_screen_pick_pressed ::
+                       Method "_screen_pick_pressed" cls sig => cls -> sig
+_screen_pick_pressed = runMethod @"_screen_pick_pressed"
+
+_script_changed :: Method "_script_changed" cls sig => cls -> sig
+_script_changed = runMethod @"_script_changed"
+
+_script_created :: Method "_script_created" cls sig => cls -> sig
+_script_created = runMethod @"_script_created"
+
+_script_list_gui_input ::
+                         Method "_script_list_gui_input" cls sig => cls -> sig
+_script_list_gui_input = runMethod @"_script_list_gui_input"
+
+_script_selected :: Method "_script_selected" cls sig => cls -> sig
+_script_selected = runMethod @"_script_selected"
+
+_script_split_dragged ::
+                        Method "_script_split_dragged" cls sig => cls -> sig
+_script_split_dragged = runMethod @"_script_split_dragged"
+
+_scroll_changed :: Method "_scroll_changed" cls sig => cls -> sig
+_scroll_changed = runMethod @"_scroll_changed"
+
+_scroll_moved :: Method "_scroll_moved" cls sig => cls -> sig
+_scroll_moved = runMethod @"_scroll_moved"
+
+_select_drive :: Method "_select_drive" cls sig => cls -> sig
+_select_drive = runMethod @"_select_drive"
+
+_select_int :: Method "_select_int" cls sig => cls -> sig
+_select_int = runMethod @"_select_int"
+
+_selected :: Method "_selected" cls sig => cls -> sig
+_selected = runMethod @"_selected"
+
+_server_disconnected ::
+                       Method "_server_disconnected" cls sig => cls -> sig
+_server_disconnected = runMethod @"_server_disconnected"
+
+_set :: Method "_set" cls sig => cls -> sig
+_set = runMethod @"_set"
+
+_set_anchor :: Method "_set_anchor" cls sig => cls -> sig
+_set_anchor = runMethod @"_set_anchor"
+
+_set_angular_hi_limit_x ::
+                          Method "_set_angular_hi_limit_x" cls sig => cls -> sig
+_set_angular_hi_limit_x = runMethod @"_set_angular_hi_limit_x"
+
+_set_angular_hi_limit_y ::
+                          Method "_set_angular_hi_limit_y" cls sig => cls -> sig
+_set_angular_hi_limit_y = runMethod @"_set_angular_hi_limit_y"
+
+_set_angular_hi_limit_z ::
+                          Method "_set_angular_hi_limit_z" cls sig => cls -> sig
+_set_angular_hi_limit_z = runMethod @"_set_angular_hi_limit_z"
+
+_set_angular_lo_limit_x ::
+                          Method "_set_angular_lo_limit_x" cls sig => cls -> sig
+_set_angular_lo_limit_x = runMethod @"_set_angular_lo_limit_x"
+
+_set_angular_lo_limit_y ::
+                          Method "_set_angular_lo_limit_y" cls sig => cls -> sig
+_set_angular_lo_limit_y = runMethod @"_set_angular_lo_limit_y"
+
+_set_angular_lo_limit_z ::
+                          Method "_set_angular_lo_limit_z" cls sig => cls -> sig
+_set_angular_lo_limit_z = runMethod @"_set_angular_lo_limit_z"
+
+_set_animations :: Method "_set_animations" cls sig => cls -> sig
+_set_animations = runMethod @"_set_animations"
+
+_set_argument_cache ::
+                      Method "_set_argument_cache" cls sig => cls -> sig
+_set_argument_cache = runMethod @"_set_argument_cache"
+
+_set_bones :: Method "_set_bones" cls sig => cls -> sig
+_set_bones = runMethod @"_set_bones"
+
+_set_bundled_scene ::
+                     Method "_set_bundled_scene" cls sig => cls -> sig
+_set_bundled_scene = runMethod @"_set_bundled_scene"
+
+_set_celld :: Method "_set_celld" cls sig => cls -> sig
+_set_celld = runMethod @"_set_celld"
+
+_set_chars :: Method "_set_chars" cls sig => cls -> sig
+_set_chars = runMethod @"_set_chars"
+
+_set_color_array :: Method "_set_color_array" cls sig => cls -> sig
+_set_color_array = runMethod @"_set_color_array"
+
+_set_current :: Method "_set_current" cls sig => cls -> sig
+_set_current = runMethod @"_set_current"
+
+_set_custom_data_array ::
+                         Method "_set_custom_data_array" cls sig => cls -> sig
+_set_custom_data_array = runMethod @"_set_custom_data_array"
+
+_set_data :: Method "_set_data" cls sig => cls -> sig
+_set_data = runMethod @"_set_data"
+
+_set_default_input_values ::
+                            Method "_set_default_input_values" cls sig => cls -> sig
+_set_default_input_values = runMethod @"_set_default_input_values"
+
+_set_elem_cache :: Method "_set_elem_cache" cls sig => cls -> sig
+_set_elem_cache = runMethod @"_set_elem_cache"
+
+_set_filters :: Method "_set_filters" cls sig => cls -> sig
+_set_filters = runMethod @"_set_filters"
+
+_set_frames :: Method "_set_frames" cls sig => cls -> sig
+_set_frames = runMethod @"_set_frames"
+
+_set_import_path :: Method "_set_import_path" cls sig => cls -> sig
+_set_import_path = runMethod @"_set_import_path"
+
+_set_items :: Method "_set_items" cls sig => cls -> sig
+_set_items = runMethod @"_set_items"
+
+_set_joy_id :: Method "_set_joy_id" cls sig => cls -> sig
+_set_joy_id = runMethod @"_set_joy_id"
+
+_set_kernings :: Method "_set_kernings" cls sig => cls -> sig
+_set_kernings = runMethod @"_set_kernings"
+
+_set_layers :: Method "_set_layers" cls sig => cls -> sig
+_set_layers = runMethod @"_set_layers"
+
+_set_lower_limit :: Method "_set_lower_limit" cls sig => cls -> sig
+_set_lower_limit = runMethod @"_set_lower_limit"
+
+_set_lower_limit_angular ::
+                           Method "_set_lower_limit_angular" cls sig => cls -> sig
+_set_lower_limit_angular = runMethod @"_set_lower_limit_angular"
+
+_set_messages :: Method "_set_messages" cls sig => cls -> sig
+_set_messages = runMethod @"_set_messages"
+
+_set_name :: Method "_set_name" cls sig => cls -> sig
+_set_name = runMethod @"_set_name"
+
+_set_old_cell_size ::
+                     Method "_set_old_cell_size" cls sig => cls -> sig
+_set_old_cell_size = runMethod @"_set_old_cell_size"
+
+_set_old_smoothing ::
+                     Method "_set_old_smoothing" cls sig => cls -> sig
+_set_old_smoothing = runMethod @"_set_old_smoothing"
+
+_set_on_top :: Method "_set_on_top" cls sig => cls -> sig
+_set_on_top = runMethod @"_set_on_top"
+
+_set_orientation :: Method "_set_orientation" cls sig => cls -> sig
+_set_orientation = runMethod @"_set_orientation"
+
+_set_outlines :: Method "_set_outlines" cls sig => cls -> sig
+_set_outlines = runMethod @"_set_outlines"
+
+_set_playing :: Method "_set_playing" cls sig => cls -> sig
+_set_playing = runMethod @"_set_playing"
+
+_set_polygons :: Method "_set_polygons" cls sig => cls -> sig
+_set_polygons = runMethod @"_set_polygons"
+
+_set_resources :: Method "_set_resources" cls sig => cls -> sig
+_set_resources = runMethod @"_set_resources"
+
+_set_rw_position :: Method "_set_rw_position" cls sig => cls -> sig
+_set_rw_position = runMethod @"_set_rw_position"
+
+_set_swing_span :: Method "_set_swing_span" cls sig => cls -> sig
+_set_swing_span = runMethod @"_set_swing_span"
+
+_set_textures :: Method "_set_textures" cls sig => cls -> sig
+_set_textures = runMethod @"_set_textures"
+
+_set_tile_data :: Method "_set_tile_data" cls sig => cls -> sig
+_set_tile_data = runMethod @"_set_tile_data"
+
+_set_transform_array ::
+                       Method "_set_transform_array" cls sig => cls -> sig
+_set_transform_array = runMethod @"_set_transform_array"
+
+_set_triangles :: Method "_set_triangles" cls sig => cls -> sig
+_set_triangles = runMethod @"_set_triangles"
+
+_set_twist_span :: Method "_set_twist_span" cls sig => cls -> sig
+_set_twist_span = runMethod @"_set_twist_span"
+
+_set_type :: Method "_set_type" cls sig => cls -> sig
+_set_type = runMethod @"_set_type"
+
+_set_type_cache :: Method "_set_type_cache" cls sig => cls -> sig
+_set_type_cache = runMethod @"_set_type_cache"
+
+_set_upper_limit :: Method "_set_upper_limit" cls sig => cls -> sig
+_set_upper_limit = runMethod @"_set_upper_limit"
+
+_set_upper_limit_angular ::
+                           Method "_set_upper_limit_angular" cls sig => cls -> sig
+_set_upper_limit_angular = runMethod @"_set_upper_limit_angular"
+
+_set_user_data :: Method "_set_user_data" cls sig => cls -> sig
+_set_user_data = runMethod @"_set_user_data"
+
+_setup_local_to_scene ::
+                        Method "_setup_local_to_scene" cls sig => cls -> sig
+_setup_local_to_scene = runMethod @"_setup_local_to_scene"
+
+_shader_changed :: Method "_shader_changed" cls sig => cls -> sig
+_shader_changed = runMethod @"_shader_changed"
+
+_shape_changed :: Method "_shape_changed" cls sig => cls -> sig
+_shape_changed = runMethod @"_shape_changed"
+
+_show_debugger :: Method "_show_debugger" cls sig => cls -> sig
+_show_debugger = runMethod @"_show_debugger"
+
+_signal_callback :: Method "_signal_callback" cls sig => cls -> sig
+_signal_callback = runMethod @"_signal_callback"
+
+_size_changed :: Method "_size_changed" cls sig => cls -> sig
+_size_changed = runMethod @"_size_changed"
+
+_snap_toggled :: Method "_snap_toggled" cls sig => cls -> sig
+_snap_toggled = runMethod @"_snap_toggled"
+
+_snap_value_changed ::
+                      Method "_snap_value_changed" cls sig => cls -> sig
+_snap_value_changed = runMethod @"_snap_value_changed"
+
+_sort_children :: Method "_sort_children" cls sig => cls -> sig
+_sort_children = runMethod @"_sort_children"
+
+_start_find_in_files ::
+                       Method "_start_find_in_files" cls sig => cls -> sig
+_start_find_in_files = runMethod @"_start_find_in_files"
+
+_step :: Method "_step" cls sig => cls -> sig
+_step = runMethod @"_step"
+
+_subcall :: Method "_subcall" cls sig => cls -> sig
+_subcall = runMethod @"_subcall"
+
+_submenu_timeout :: Method "_submenu_timeout" cls sig => cls -> sig
+_submenu_timeout = runMethod @"_submenu_timeout"
+
+_subwindow_visibility_changed ::
+                                Method "_subwindow_visibility_changed" cls sig => cls -> sig
+_subwindow_visibility_changed
+  = runMethod @"_subwindow_visibility_changed"
+
+_tab_changed :: Method "_tab_changed" cls sig => cls -> sig
+_tab_changed = runMethod @"_tab_changed"
+
+_template_changed ::
+                    Method "_template_changed" cls sig => cls -> sig
+_template_changed = runMethod @"_template_changed"
+
+_text_changed :: Method "_text_changed" cls sig => cls -> sig
+_text_changed = runMethod @"_text_changed"
+
+_text_changed_emit ::
+                     Method "_text_changed_emit" cls sig => cls -> sig
+_text_changed_emit = runMethod @"_text_changed_emit"
+
+_text_editor_enter ::
+                     Method "_text_editor_enter" cls sig => cls -> sig
+_text_editor_enter = runMethod @"_text_editor_enter"
+
+_text_editor_modal_close ::
+                           Method "_text_editor_modal_close" cls sig => cls -> sig
+_text_editor_modal_close = runMethod @"_text_editor_modal_close"
+
+_text_entered :: Method "_text_entered" cls sig => cls -> sig
+_text_entered = runMethod @"_text_entered"
+
+_text_type_toggled ::
+                     Method "_text_type_toggled" cls sig => cls -> sig
+_text_type_toggled = runMethod @"_text_type_toggled"
+
+_theme_changed :: Method "_theme_changed" cls sig => cls -> sig
+_theme_changed = runMethod @"_theme_changed"
+
+_theme_option :: Method "_theme_option" cls sig => cls -> sig
+_theme_option = runMethod @"_theme_option"
+
+_thread_done :: Method "_thread_done" cls sig => cls -> sig
+_thread_done = runMethod @"_thread_done"
+
+_thumbnail_done :: Method "_thumbnail_done" cls sig => cls -> sig
+_thumbnail_done = runMethod @"_thumbnail_done"
+
+_thumbnail_result ::
+                    Method "_thumbnail_result" cls sig => cls -> sig
+_thumbnail_result = runMethod @"_thumbnail_result"
+
+_toggle_draw_caret ::
+                     Method "_toggle_draw_caret" cls sig => cls -> sig
+_toggle_draw_caret = runMethod @"_toggle_draw_caret"
+
+_toggle_members_overview_alpha_sort ::
+                                      Method "_toggle_members_overview_alpha_sort" cls sig =>
+                                      cls -> sig
+_toggle_members_overview_alpha_sort
+  = runMethod @"_toggle_members_overview_alpha_sort"
+
+_toggled :: Method "_toggled" cls sig => cls -> sig
+_toggled = runMethod @"_toggled"
+
+_top_layer_draw :: Method "_top_layer_draw" cls sig => cls -> sig
+_top_layer_draw = runMethod @"_top_layer_draw"
+
+_top_layer_input :: Method "_top_layer_input" cls sig => cls -> sig
+_top_layer_input = runMethod @"_top_layer_input"
+
+_toplevel_raise_self ::
+                       Method "_toplevel_raise_self" cls sig => cls -> sig
+_toplevel_raise_self = runMethod @"_toplevel_raise_self"
+
+_tree_changed :: Method "_tree_changed" cls sig => cls -> sig
+_tree_changed = runMethod @"_tree_changed"
+
+_tree_item_activated ::
+                       Method "_tree_item_activated" cls sig => cls -> sig
+_tree_item_activated = runMethod @"_tree_item_activated"
+
+_tree_multi_selected ::
+                       Method "_tree_multi_selected" cls sig => cls -> sig
+_tree_multi_selected = runMethod @"_tree_multi_selected"
+
+_tree_selected :: Method "_tree_selected" cls sig => cls -> sig
+_tree_selected = runMethod @"_tree_selected"
+
+_unhandled_input :: Method "_unhandled_input" cls sig => cls -> sig
+_unhandled_input = runMethod @"_unhandled_input"
+
+_unhandled_key_input ::
+                       Method "_unhandled_key_input" cls sig => cls -> sig
+_unhandled_key_input = runMethod @"_unhandled_key_input"
+
+_update :: Method "_update" cls sig => cls -> sig
+_update = runMethod @"_update"
+
+_update_bone_setup ::
+                     Method "_update_bone_setup" cls sig => cls -> sig
+_update_bone_setup = runMethod @"_update_bone_setup"
+
+_update_callback :: Method "_update_callback" cls sig => cls -> sig
+_update_callback = runMethod @"_update_callback"
+
+_update_current_tab ::
+                      Method "_update_current_tab" cls sig => cls -> sig
+_update_current_tab = runMethod @"_update_current_tab"
+
+_update_dir :: Method "_update_dir" cls sig => cls -> sig
+_update_dir = runMethod @"_update_dir"
+
+_update_file_list ::
+                    Method "_update_file_list" cls sig => cls -> sig
+_update_file_list = runMethod @"_update_file_list"
+
+_update_gizmo :: Method "_update_gizmo" cls sig => cls -> sig
+_update_gizmo = runMethod @"_update_gizmo"
+
+_update_hover :: Method "_update_hover" cls sig => cls -> sig
+_update_hover = runMethod @"_update_hover"
+
+_update_members_overview ::
+                           Method "_update_members_overview" cls sig => cls -> sig
+_update_members_overview = runMethod @"_update_members_overview"
+
+_update_minimum_size ::
+                       Method "_update_minimum_size" cls sig => cls -> sig
+_update_minimum_size = runMethod @"_update_minimum_size"
+
+_update_octants_callback ::
+                           Method "_update_octants_callback" cls sig => cls -> sig
+_update_octants_callback = runMethod @"_update_octants_callback"
+
+_update_presets :: Method "_update_presets" cls sig => cls -> sig
+_update_presets = runMethod @"_update_presets"
+
+_update_properties ::
+                     Method "_update_properties" cls sig => cls -> sig
+_update_properties = runMethod @"_update_properties"
+
+_update_proxy :: Method "_update_proxy" cls sig => cls -> sig
+_update_proxy = runMethod @"_update_proxy"
+
+_update_recent_scripts ::
+                         Method "_update_recent_scripts" cls sig => cls -> sig
+_update_recent_scripts = runMethod @"_update_recent_scripts"
+
+_update_render_thread ::
+                        Method "_update_render_thread" cls sig => cls -> sig
+_update_render_thread = runMethod @"_update_render_thread"
+
+_update_script_names ::
+                       Method "_update_script_names" cls sig => cls -> sig
+_update_script_names = runMethod @"_update_script_names"
+
+_update_scroll :: Method "_update_scroll" cls sig => cls -> sig
+_update_scroll = runMethod @"_update_scroll"
+
+_update_scroll_offset ::
+                        Method "_update_scroll_offset" cls sig => cls -> sig
+_update_scroll_offset = runMethod @"_update_scroll_offset"
+
+_update_scrollbar_position ::
+                             Method "_update_scrollbar_position" cls sig => cls -> sig
+_update_scrollbar_position
+  = runMethod @"_update_scrollbar_position"
+
+_update_shader :: Method "_update_shader" cls sig => cls -> sig
+_update_shader = runMethod @"_update_shader"
+
+_update_shape :: Method "_update_shape" cls sig => cls -> sig
+_update_shape = runMethod @"_update_shape"
+
+_update_sky :: Method "_update_sky" cls sig => cls -> sig
+_update_sky = runMethod @"_update_sky"
+
+_update_texture :: Method "_update_texture" cls sig => cls -> sig
+_update_texture = runMethod @"_update_texture"
+
+_update_transform ::
+                    Method "_update_transform" cls sig => cls -> sig
+_update_transform = runMethod @"_update_transform"
+
+_uv_input :: Method "_uv_input" cls sig => cls -> sig
+_uv_input = runMethod @"_uv_input"
+
+_v_scroll_input :: Method "_v_scroll_input" cls sig => cls -> sig
+_v_scroll_input = runMethod @"_v_scroll_input"
+
+_value_changed :: Method "_value_changed" cls sig => cls -> sig
+_value_changed = runMethod @"_value_changed"
+
+_value_editor_changed ::
+                        Method "_value_editor_changed" cls sig => cls -> sig
+_value_editor_changed = runMethod @"_value_editor_changed"
+
+_vp_input :: Method "_vp_input" cls sig => cls -> sig
+_vp_input = runMethod @"_vp_input"
+
+_vp_input_text :: Method "_vp_input_text" cls sig => cls -> sig
+_vp_input_text = runMethod @"_vp_input_text"
+
+_vp_unhandled_input ::
+                      Method "_vp_unhandled_input" cls sig => cls -> sig
+_vp_unhandled_input = runMethod @"_vp_unhandled_input"
+
+_vscroll_changed :: Method "_vscroll_changed" cls sig => cls -> sig
+_vscroll_changed = runMethod @"_vscroll_changed"
+
+_w_input :: Method "_w_input" cls sig => cls -> sig
+_w_input = runMethod @"_w_input"
+
+_zoom_minus :: Method "_zoom_minus" cls sig => cls -> sig
+_zoom_minus = runMethod @"_zoom_minus"
+
+_zoom_plus :: Method "_zoom_plus" cls sig => cls -> sig
+_zoom_plus = runMethod @"_zoom_plus"
+
+_zoom_reset :: Method "_zoom_reset" cls sig => cls -> sig
+_zoom_reset = runMethod @"_zoom_reset"
+
+accept_event :: Method "accept_event" cls sig => cls -> sig
+accept_event = runMethod @"accept_event"
+
+accept_stream :: Method "accept_stream" cls sig => cls -> sig
+accept_stream = runMethod @"accept_stream"
+
+action_add_event :: Method "action_add_event" cls sig => cls -> sig
+action_add_event = runMethod @"action_add_event"
+
+action_erase_event ::
+                     Method "action_erase_event" cls sig => cls -> sig
+action_erase_event = runMethod @"action_erase_event"
+
+action_erase_events ::
+                      Method "action_erase_events" cls sig => cls -> sig
+action_erase_events = runMethod @"action_erase_events"
+
+action_has_event :: Method "action_has_event" cls sig => cls -> sig
+action_has_event = runMethod @"action_has_event"
+
+action_press :: Method "action_press" cls sig => cls -> sig
+action_press = runMethod @"action_press"
+
+action_release :: Method "action_release" cls sig => cls -> sig
+action_release = runMethod @"action_release"
+
+action_set_deadzone ::
+                      Method "action_set_deadzone" cls sig => cls -> sig
+action_set_deadzone = runMethod @"action_set_deadzone"
+
+add_action :: Method "add_action" cls sig => cls -> sig
+add_action = runMethod @"add_action"
+
+add_animation :: Method "add_animation" cls sig => cls -> sig
+add_animation = runMethod @"add_animation"
+
+add_autoload_singleton ::
+                         Method "add_autoload_singleton" cls sig => cls -> sig
+add_autoload_singleton = runMethod @"add_autoload_singleton"
+
+add_blend_point :: Method "add_blend_point" cls sig => cls -> sig
+add_blend_point = runMethod @"add_blend_point"
+
+add_blend_shape :: Method "add_blend_shape" cls sig => cls -> sig
+add_blend_shape = runMethod @"add_blend_shape"
+
+add_bone :: Method "add_bone" cls sig => cls -> sig
+add_bone = runMethod @"add_bone"
+
+add_bones :: Method "add_bones" cls sig => cls -> sig
+add_bones = runMethod @"add_bones"
+
+add_bus :: Method "add_bus" cls sig => cls -> sig
+add_bus = runMethod @"add_bus"
+
+add_bus_effect :: Method "add_bus_effect" cls sig => cls -> sig
+add_bus_effect = runMethod @"add_bus_effect"
+
+add_button :: Method "add_button" cls sig => cls -> sig
+add_button = runMethod @"add_button"
+
+add_cancel :: Method "add_cancel" cls sig => cls -> sig
+add_cancel = runMethod @"add_cancel"
+
+add_central_force ::
+                    Method "add_central_force" cls sig => cls -> sig
+add_central_force = runMethod @"add_central_force"
+
+add_char :: Method "add_char" cls sig => cls -> sig
+add_char = runMethod @"add_char"
+
+add_check_item :: Method "add_check_item" cls sig => cls -> sig
+add_check_item = runMethod @"add_check_item"
+
+add_check_shortcut ::
+                     Method "add_check_shortcut" cls sig => cls -> sig
+add_check_shortcut = runMethod @"add_check_shortcut"
+
+add_child :: Method "add_child" cls sig => cls -> sig
+add_child = runMethod @"add_child"
+
+add_child_below_node ::
+                       Method "add_child_below_node" cls sig => cls -> sig
+add_child_below_node = runMethod @"add_child_below_node"
+
+add_collision_exception_with ::
+                               Method "add_collision_exception_with" cls sig => cls -> sig
+add_collision_exception_with
+  = runMethod @"add_collision_exception_with"
+
+add_collision_segments ::
+                         Method "add_collision_segments" cls sig => cls -> sig
+add_collision_segments = runMethod @"add_collision_segments"
+
+add_collision_triangles ::
+                          Method "add_collision_triangles" cls sig => cls -> sig
+add_collision_triangles = runMethod @"add_collision_triangles"
+
+add_color :: Method "add_color" cls sig => cls -> sig
+add_color = runMethod @"add_color"
+
+add_color_override ::
+                     Method "add_color_override" cls sig => cls -> sig
+add_color_override = runMethod @"add_color_override"
+
+add_color_region :: Method "add_color_region" cls sig => cls -> sig
+add_color_region = runMethod @"add_color_region"
+
+add_constant_override ::
+                        Method "add_constant_override" cls sig => cls -> sig
+add_constant_override = runMethod @"add_constant_override"
+
+add_control_to_bottom_panel ::
+                              Method "add_control_to_bottom_panel" cls sig => cls -> sig
+add_control_to_bottom_panel
+  = runMethod @"add_control_to_bottom_panel"
+
+add_control_to_container ::
+                           Method "add_control_to_container" cls sig => cls -> sig
+add_control_to_container = runMethod @"add_control_to_container"
+
+add_control_to_dock ::
+                      Method "add_control_to_dock" cls sig => cls -> sig
+add_control_to_dock = runMethod @"add_control_to_dock"
+
+add_custom_control ::
+                     Method "add_custom_control" cls sig => cls -> sig
+add_custom_control = runMethod @"add_custom_control"
+
+add_custom_node :: Method "add_custom_node" cls sig => cls -> sig
+add_custom_node = runMethod @"add_custom_node"
+
+add_custom_signal ::
+                    Method "add_custom_signal" cls sig => cls -> sig
+add_custom_signal = runMethod @"add_custom_signal"
+
+add_custom_type :: Method "add_custom_type" cls sig => cls -> sig
+add_custom_type = runMethod @"add_custom_type"
+
+add_device :: Method "add_device" cls sig => cls -> sig
+add_device = runMethod @"add_device"
+
+add_do_method :: Method "add_do_method" cls sig => cls -> sig
+add_do_method = runMethod @"add_do_method"
+
+add_do_property :: Method "add_do_property" cls sig => cls -> sig
+add_do_property = runMethod @"add_do_property"
+
+add_do_reference :: Method "add_do_reference" cls sig => cls -> sig
+add_do_reference = runMethod @"add_do_reference"
+
+add_exception :: Method "add_exception" cls sig => cls -> sig
+add_exception = runMethod @"add_exception"
+
+add_exception_rid ::
+                    Method "add_exception_rid" cls sig => cls -> sig
+add_exception_rid = runMethod @"add_exception_rid"
+
+add_excluded_object ::
+                      Method "add_excluded_object" cls sig => cls -> sig
+add_excluded_object = runMethod @"add_excluded_object"
+
+add_export_plugin ::
+                    Method "add_export_plugin" cls sig => cls -> sig
+add_export_plugin = runMethod @"add_export_plugin"
+
+add_fallback :: Method "add_fallback" cls sig => cls -> sig
+add_fallback = runMethod @"add_fallback"
+
+add_file :: Method "add_file" cls sig => cls -> sig
+add_file = runMethod @"add_file"
+
+add_filter :: Method "add_filter" cls sig => cls -> sig
+add_filter = runMethod @"add_filter"
+
+add_font_override ::
+                    Method "add_font_override" cls sig => cls -> sig
+add_font_override = runMethod @"add_font_override"
+
+add_force :: Method "add_force" cls sig => cls -> sig
+add_force = runMethod @"add_force"
+
+add_frame :: Method "add_frame" cls sig => cls -> sig
+add_frame = runMethod @"add_frame"
+
+add_function :: Method "add_function" cls sig => cls -> sig
+add_function = runMethod @"add_function"
+
+add_handles :: Method "add_handles" cls sig => cls -> sig
+add_handles = runMethod @"add_handles"
+
+add_icon_check_item ::
+                      Method "add_icon_check_item" cls sig => cls -> sig
+add_icon_check_item = runMethod @"add_icon_check_item"
+
+add_icon_check_shortcut ::
+                          Method "add_icon_check_shortcut" cls sig => cls -> sig
+add_icon_check_shortcut = runMethod @"add_icon_check_shortcut"
+
+add_icon_item :: Method "add_icon_item" cls sig => cls -> sig
+add_icon_item = runMethod @"add_icon_item"
+
+add_icon_override ::
+                    Method "add_icon_override" cls sig => cls -> sig
+add_icon_override = runMethod @"add_icon_override"
+
+add_icon_shortcut ::
+                    Method "add_icon_shortcut" cls sig => cls -> sig
+add_icon_shortcut = runMethod @"add_icon_shortcut"
+
+add_image :: Method "add_image" cls sig => cls -> sig
+add_image = runMethod @"add_image"
+
+add_import_plugin ::
+                    Method "add_import_plugin" cls sig => cls -> sig
+add_import_plugin = runMethod @"add_import_plugin"
+
+add_index :: Method "add_index" cls sig => cls -> sig
+add_index = runMethod @"add_index"
+
+add_input :: Method "add_input" cls sig => cls -> sig
+add_input = runMethod @"add_input"
+
+add_inspector_plugin ::
+                       Method "add_inspector_plugin" cls sig => cls -> sig
+add_inspector_plugin = runMethod @"add_inspector_plugin"
+
+add_ios_bundle_file ::
+                      Method "add_ios_bundle_file" cls sig => cls -> sig
+add_ios_bundle_file = runMethod @"add_ios_bundle_file"
+
+add_ios_cpp_code :: Method "add_ios_cpp_code" cls sig => cls -> sig
+add_ios_cpp_code = runMethod @"add_ios_cpp_code"
+
+add_ios_framework ::
+                    Method "add_ios_framework" cls sig => cls -> sig
+add_ios_framework = runMethod @"add_ios_framework"
+
+add_ios_linker_flags ::
+                       Method "add_ios_linker_flags" cls sig => cls -> sig
+add_ios_linker_flags = runMethod @"add_ios_linker_flags"
+
+add_ios_plist_content ::
+                        Method "add_ios_plist_content" cls sig => cls -> sig
+add_ios_plist_content = runMethod @"add_ios_plist_content"
+
+add_item :: Method "add_item" cls sig => cls -> sig
+add_item = runMethod @"add_item"
+
+add_joy_mapping :: Method "add_joy_mapping" cls sig => cls -> sig
+add_joy_mapping = runMethod @"add_joy_mapping"
+
+add_kerning_pair :: Method "add_kerning_pair" cls sig => cls -> sig
+add_kerning_pair = runMethod @"add_kerning_pair"
+
+add_keyword_color ::
+                    Method "add_keyword_color" cls sig => cls -> sig
+add_keyword_color = runMethod @"add_keyword_color"
+
+add_lines :: Method "add_lines" cls sig => cls -> sig
+add_lines = runMethod @"add_lines"
+
+add_mesh :: Method "add_mesh" cls sig => cls -> sig
+add_mesh = runMethod @"add_mesh"
+
+add_message :: Method "add_message" cls sig => cls -> sig
+add_message = runMethod @"add_message"
+
+add_node :: Method "add_node" cls sig => cls -> sig
+add_node = runMethod @"add_node"
+
+add_normal :: Method "add_normal" cls sig => cls -> sig
+add_normal = runMethod @"add_normal"
+
+add_outline :: Method "add_outline" cls sig => cls -> sig
+add_outline = runMethod @"add_outline"
+
+add_outline_at_index ::
+                       Method "add_outline_at_index" cls sig => cls -> sig
+add_outline_at_index = runMethod @"add_outline_at_index"
+
+add_piece :: Method "add_piece" cls sig => cls -> sig
+add_piece = runMethod @"add_piece"
+
+add_point :: Method "add_point" cls sig => cls -> sig
+add_point = runMethod @"add_point"
+
+add_polygon :: Method "add_polygon" cls sig => cls -> sig
+add_polygon = runMethod @"add_polygon"
+
+add_port_mapping :: Method "add_port_mapping" cls sig => cls -> sig
+add_port_mapping = runMethod @"add_port_mapping"
+
+add_preset :: Method "add_preset" cls sig => cls -> sig
+add_preset = runMethod @"add_preset"
+
+add_preview_generator ::
+                        Method "add_preview_generator" cls sig => cls -> sig
+add_preview_generator = runMethod @"add_preview_generator"
+
+add_property_editor ::
+                      Method "add_property_editor" cls sig => cls -> sig
+add_property_editor = runMethod @"add_property_editor"
+
+add_property_editor_for_multiple_properties ::
+                                              Method "add_property_editor_for_multiple_properties"
+                                                cls sig =>
+                                              cls -> sig
+add_property_editor_for_multiple_properties
+  = runMethod @"add_property_editor_for_multiple_properties"
+
+add_property_info ::
+                    Method "add_property_info" cls sig => cls -> sig
+add_property_info = runMethod @"add_property_info"
+
+add_radio_check_item ::
+                       Method "add_radio_check_item" cls sig => cls -> sig
+add_radio_check_item = runMethod @"add_radio_check_item"
+
+add_radio_check_shortcut ::
+                           Method "add_radio_check_shortcut" cls sig => cls -> sig
+add_radio_check_shortcut = runMethod @"add_radio_check_shortcut"
+
+add_resource :: Method "add_resource" cls sig => cls -> sig
+add_resource = runMethod @"add_resource"
+
+add_root_node :: Method "add_root_node" cls sig => cls -> sig
+add_root_node = runMethod @"add_root_node"
+
+add_scene_import_plugin ::
+                          Method "add_scene_import_plugin" cls sig => cls -> sig
+add_scene_import_plugin = runMethod @"add_scene_import_plugin"
+
+add_separator :: Method "add_separator" cls sig => cls -> sig
+add_separator = runMethod @"add_separator"
+
+add_shader_override ::
+                      Method "add_shader_override" cls sig => cls -> sig
+add_shader_override = runMethod @"add_shader_override"
+
+add_shared_object ::
+                    Method "add_shared_object" cls sig => cls -> sig
+add_shared_object = runMethod @"add_shared_object"
+
+add_shortcut :: Method "add_shortcut" cls sig => cls -> sig
+add_shortcut = runMethod @"add_shortcut"
+
+add_smooth_group :: Method "add_smooth_group" cls sig => cls -> sig
+add_smooth_group = runMethod @"add_smooth_group"
+
+add_spacer :: Method "add_spacer" cls sig => cls -> sig
+add_spacer = runMethod @"add_spacer"
+
+add_sphere :: Method "add_sphere" cls sig => cls -> sig
+add_sphere = runMethod @"add_sphere"
+
+add_stylebox_override ::
+                        Method "add_stylebox_override" cls sig => cls -> sig
+add_stylebox_override = runMethod @"add_stylebox_override"
+
+add_submenu_item :: Method "add_submenu_item" cls sig => cls -> sig
+add_submenu_item = runMethod @"add_submenu_item"
+
+add_surface_from_arrays ::
+                          Method "add_surface_from_arrays" cls sig => cls -> sig
+add_surface_from_arrays = runMethod @"add_surface_from_arrays"
+
+add_tab :: Method "add_tab" cls sig => cls -> sig
+add_tab = runMethod @"add_tab"
+
+add_tangent :: Method "add_tangent" cls sig => cls -> sig
+add_tangent = runMethod @"add_tangent"
+
+add_text :: Method "add_text" cls sig => cls -> sig
+add_text = runMethod @"add_text"
+
+add_texture :: Method "add_texture" cls sig => cls -> sig
+add_texture = runMethod @"add_texture"
+
+add_to_format :: Method "add_to_format" cls sig => cls -> sig
+add_to_format = runMethod @"add_to_format"
+
+add_to_group :: Method "add_to_group" cls sig => cls -> sig
+add_to_group = runMethod @"add_to_group"
+
+add_tool_menu_item ::
+                     Method "add_tool_menu_item" cls sig => cls -> sig
+add_tool_menu_item = runMethod @"add_tool_menu_item"
+
+add_tool_submenu_item ::
+                        Method "add_tool_submenu_item" cls sig => cls -> sig
+add_tool_submenu_item = runMethod @"add_tool_submenu_item"
+
+add_torque :: Method "add_torque" cls sig => cls -> sig
+add_torque = runMethod @"add_torque"
+
+add_track :: Method "add_track" cls sig => cls -> sig
+add_track = runMethod @"add_track"
+
+add_transition :: Method "add_transition" cls sig => cls -> sig
+add_transition = runMethod @"add_transition"
+
+add_translation :: Method "add_translation" cls sig => cls -> sig
+add_translation = runMethod @"add_translation"
+
+add_triangle :: Method "add_triangle" cls sig => cls -> sig
+add_triangle = runMethod @"add_triangle"
+
+add_triangle_fan :: Method "add_triangle_fan" cls sig => cls -> sig
+add_triangle_fan = runMethod @"add_triangle_fan"
+
+add_undo_method :: Method "add_undo_method" cls sig => cls -> sig
+add_undo_method = runMethod @"add_undo_method"
+
+add_undo_property ::
+                    Method "add_undo_property" cls sig => cls -> sig
+add_undo_property = runMethod @"add_undo_property"
+
+add_undo_reference ::
+                     Method "add_undo_reference" cls sig => cls -> sig
+add_undo_reference = runMethod @"add_undo_reference"
+
+add_unscaled_billboard ::
+                         Method "add_unscaled_billboard" cls sig => cls -> sig
+add_unscaled_billboard = runMethod @"add_unscaled_billboard"
+
+add_user :: Method "add_user" cls sig => cls -> sig
+add_user = runMethod @"add_user"
+
+add_user_signal :: Method "add_user_signal" cls sig => cls -> sig
+add_user_signal = runMethod @"add_user_signal"
+
+add_uv :: Method "add_uv" cls sig => cls -> sig
+add_uv = runMethod @"add_uv"
+
+add_uv2 :: Method "add_uv2" cls sig => cls -> sig
+add_uv2 = runMethod @"add_uv2"
+
+add_valid_connection_type ::
+                            Method "add_valid_connection_type" cls sig => cls -> sig
+add_valid_connection_type = runMethod @"add_valid_connection_type"
+
+add_valid_left_disconnect_type ::
+                                 Method "add_valid_left_disconnect_type" cls sig => cls -> sig
+add_valid_left_disconnect_type
+  = runMethod @"add_valid_left_disconnect_type"
+
+add_valid_right_disconnect_type ::
+                                  Method "add_valid_right_disconnect_type" cls sig => cls -> sig
+add_valid_right_disconnect_type
+  = runMethod @"add_valid_right_disconnect_type"
+
+add_variable :: Method "add_variable" cls sig => cls -> sig
+add_variable = runMethod @"add_variable"
+
+add_vertex :: Method "add_vertex" cls sig => cls -> sig
+add_vertex = runMethod @"add_vertex"
+
+add_weights :: Method "add_weights" cls sig => cls -> sig
+add_weights = runMethod @"add_weights"
+
+advance :: Method "advance" cls sig => cls -> sig
+advance = runMethod @"advance"
+
+alert :: Method "alert" cls sig => cls -> sig
+alert = runMethod @"alert"
+
+align :: Method "align" cls sig => cls -> sig
+align = runMethod @"align"
+
+animation_get_next ::
+                     Method "animation_get_next" cls sig => cls -> sig
+animation_get_next = runMethod @"animation_get_next"
+
+animation_node_get_animation ::
+                               Method "animation_node_get_animation" cls sig => cls -> sig
+animation_node_get_animation
+  = runMethod @"animation_node_get_animation"
+
+animation_node_get_master_animation ::
+                                      Method "animation_node_get_master_animation" cls sig =>
+                                      cls -> sig
+animation_node_get_master_animation
+  = runMethod @"animation_node_get_master_animation"
+
+animation_node_get_position ::
+                              Method "animation_node_get_position" cls sig => cls -> sig
+animation_node_get_position
+  = runMethod @"animation_node_get_position"
+
+animation_node_set_animation ::
+                               Method "animation_node_set_animation" cls sig => cls -> sig
+animation_node_set_animation
+  = runMethod @"animation_node_set_animation"
+
+animation_node_set_filter_path ::
+                                 Method "animation_node_set_filter_path" cls sig => cls -> sig
+animation_node_set_filter_path
+  = runMethod @"animation_node_set_filter_path"
+
+animation_node_set_master_animation ::
+                                      Method "animation_node_set_master_animation" cls sig =>
+                                      cls -> sig
+animation_node_set_master_animation
+  = runMethod @"animation_node_set_master_animation"
+
+animation_set_next ::
+                     Method "animation_set_next" cls sig => cls -> sig
+animation_set_next = runMethod @"animation_set_next"
+
+animation_track_get_key_animation ::
+                                    Method "animation_track_get_key_animation" cls sig => cls -> sig
+animation_track_get_key_animation
+  = runMethod @"animation_track_get_key_animation"
+
+animation_track_insert_key ::
+                             Method "animation_track_insert_key" cls sig => cls -> sig
+animation_track_insert_key
+  = runMethod @"animation_track_insert_key"
+
+animation_track_set_key_animation ::
+                                    Method "animation_track_set_key_animation" cls sig => cls -> sig
+animation_track_set_key_animation
+  = runMethod @"animation_track_set_key_animation"
+
+append_at_cursor :: Method "append_at_cursor" cls sig => cls -> sig
+append_at_cursor = runMethod @"append_at_cursor"
+
+append_bbcode :: Method "append_bbcode" cls sig => cls -> sig
+append_bbcode = runMethod @"append_bbcode"
+
+append_from :: Method "append_from" cls sig => cls -> sig
+append_from = runMethod @"append_from"
+
+apply_central_impulse ::
+                        Method "apply_central_impulse" cls sig => cls -> sig
+apply_central_impulse = runMethod @"apply_central_impulse"
+
+apply_changes :: Method "apply_changes" cls sig => cls -> sig
+apply_changes = runMethod @"apply_changes"
+
+apply_impulse :: Method "apply_impulse" cls sig => cls -> sig
+apply_impulse = runMethod @"apply_impulse"
+
+apply_rest :: Method "apply_rest" cls sig => cls -> sig
+apply_rest = runMethod @"apply_rest"
+
+apply_scale :: Method "apply_scale" cls sig => cls -> sig
+apply_scale = runMethod @"apply_scale"
+
+apply_torque_impulse ::
+                       Method "apply_torque_impulse" cls sig => cls -> sig
+apply_torque_impulse = runMethod @"apply_torque_impulse"
+
+are_column_titles_visible ::
+                            Method "are_column_titles_visible" cls sig => cls -> sig
+are_column_titles_visible = runMethod @"are_column_titles_visible"
+
+are_nodes_connected ::
+                      Method "are_nodes_connected" cls sig => cls -> sig
+are_nodes_connected = runMethod @"are_nodes_connected"
+
+are_points_connected ::
+                       Method "are_points_connected" cls sig => cls -> sig
+are_points_connected = runMethod @"are_points_connected"
+
+are_shadows_enabled ::
+                      Method "are_shadows_enabled" cls sig => cls -> sig
+are_shadows_enabled = runMethod @"are_shadows_enabled"
+
+are_tabs_visible :: Method "are_tabs_visible" cls sig => cls -> sig
+are_tabs_visible = runMethod @"are_tabs_visible"
+
+area_add_shape :: Method "area_add_shape" cls sig => cls -> sig
+area_add_shape = runMethod @"area_add_shape"
+
+area_attach_object_instance_id ::
+                                 Method "area_attach_object_instance_id" cls sig => cls -> sig
+area_attach_object_instance_id
+  = runMethod @"area_attach_object_instance_id"
+
+area_clear_shapes ::
+                    Method "area_clear_shapes" cls sig => cls -> sig
+area_clear_shapes = runMethod @"area_clear_shapes"
+
+area_create :: Method "area_create" cls sig => cls -> sig
+area_create = runMethod @"area_create"
+
+area_get_object_instance_id ::
+                              Method "area_get_object_instance_id" cls sig => cls -> sig
+area_get_object_instance_id
+  = runMethod @"area_get_object_instance_id"
+
+area_get_param :: Method "area_get_param" cls sig => cls -> sig
+area_get_param = runMethod @"area_get_param"
+
+area_get_shape :: Method "area_get_shape" cls sig => cls -> sig
+area_get_shape = runMethod @"area_get_shape"
+
+area_get_shape_count ::
+                       Method "area_get_shape_count" cls sig => cls -> sig
+area_get_shape_count = runMethod @"area_get_shape_count"
+
+area_get_shape_transform ::
+                           Method "area_get_shape_transform" cls sig => cls -> sig
+area_get_shape_transform = runMethod @"area_get_shape_transform"
+
+area_get_space :: Method "area_get_space" cls sig => cls -> sig
+area_get_space = runMethod @"area_get_space"
+
+area_get_space_override_mode ::
+                               Method "area_get_space_override_mode" cls sig => cls -> sig
+area_get_space_override_mode
+  = runMethod @"area_get_space_override_mode"
+
+area_get_transform ::
+                     Method "area_get_transform" cls sig => cls -> sig
+area_get_transform = runMethod @"area_get_transform"
+
+area_is_ray_pickable ::
+                       Method "area_is_ray_pickable" cls sig => cls -> sig
+area_is_ray_pickable = runMethod @"area_is_ray_pickable"
+
+area_remove_shape ::
+                    Method "area_remove_shape" cls sig => cls -> sig
+area_remove_shape = runMethod @"area_remove_shape"
+
+area_set_area_monitor_callback ::
+                                 Method "area_set_area_monitor_callback" cls sig => cls -> sig
+area_set_area_monitor_callback
+  = runMethod @"area_set_area_monitor_callback"
+
+area_set_collision_layer ::
+                           Method "area_set_collision_layer" cls sig => cls -> sig
+area_set_collision_layer = runMethod @"area_set_collision_layer"
+
+area_set_collision_mask ::
+                          Method "area_set_collision_mask" cls sig => cls -> sig
+area_set_collision_mask = runMethod @"area_set_collision_mask"
+
+area_set_monitor_callback ::
+                            Method "area_set_monitor_callback" cls sig => cls -> sig
+area_set_monitor_callback = runMethod @"area_set_monitor_callback"
+
+area_set_monitorable ::
+                       Method "area_set_monitorable" cls sig => cls -> sig
+area_set_monitorable = runMethod @"area_set_monitorable"
+
+area_set_param :: Method "area_set_param" cls sig => cls -> sig
+area_set_param = runMethod @"area_set_param"
+
+area_set_ray_pickable ::
+                        Method "area_set_ray_pickable" cls sig => cls -> sig
+area_set_ray_pickable = runMethod @"area_set_ray_pickable"
+
+area_set_shape :: Method "area_set_shape" cls sig => cls -> sig
+area_set_shape = runMethod @"area_set_shape"
+
+area_set_shape_disabled ::
+                          Method "area_set_shape_disabled" cls sig => cls -> sig
+area_set_shape_disabled = runMethod @"area_set_shape_disabled"
+
+area_set_shape_transform ::
+                           Method "area_set_shape_transform" cls sig => cls -> sig
+area_set_shape_transform = runMethod @"area_set_shape_transform"
+
+area_set_space :: Method "area_set_space" cls sig => cls -> sig
+area_set_space = runMethod @"area_set_space"
+
+area_set_space_override_mode ::
+                               Method "area_set_space_override_mode" cls sig => cls -> sig
+area_set_space_override_mode
+  = runMethod @"area_set_space_override_mode"
+
+area_set_transform ::
+                     Method "area_set_transform" cls sig => cls -> sig
+area_set_transform = runMethod @"area_set_transform"
+
+as_text :: Method "as_text" cls sig => cls -> sig
+as_text = runMethod @"as_text"
+
+audio_track_get_key_end_offset ::
+                                 Method "audio_track_get_key_end_offset" cls sig => cls -> sig
+audio_track_get_key_end_offset
+  = runMethod @"audio_track_get_key_end_offset"
+
+audio_track_get_key_start_offset ::
+                                   Method "audio_track_get_key_start_offset" cls sig => cls -> sig
+audio_track_get_key_start_offset
+  = runMethod @"audio_track_get_key_start_offset"
+
+audio_track_get_key_stream ::
+                             Method "audio_track_get_key_stream" cls sig => cls -> sig
+audio_track_get_key_stream
+  = runMethod @"audio_track_get_key_stream"
+
+audio_track_insert_key ::
+                         Method "audio_track_insert_key" cls sig => cls -> sig
+audio_track_insert_key = runMethod @"audio_track_insert_key"
+
+audio_track_set_key_end_offset ::
+                                 Method "audio_track_set_key_end_offset" cls sig => cls -> sig
+audio_track_set_key_end_offset
+  = runMethod @"audio_track_set_key_end_offset"
+
+audio_track_set_key_start_offset ::
+                                   Method "audio_track_set_key_start_offset" cls sig => cls -> sig
+audio_track_set_key_start_offset
+  = runMethod @"audio_track_set_key_start_offset"
+
+audio_track_set_key_stream ::
+                             Method "audio_track_set_key_stream" cls sig => cls -> sig
+audio_track_set_key_stream
+  = runMethod @"audio_track_set_key_stream"
+
+autotile_get_bitmask_mode ::
+                            Method "autotile_get_bitmask_mode" cls sig => cls -> sig
+autotile_get_bitmask_mode = runMethod @"autotile_get_bitmask_mode"
+
+autotile_get_size ::
+                    Method "autotile_get_size" cls sig => cls -> sig
+autotile_get_size = runMethod @"autotile_get_size"
+
+autotile_set_bitmask_mode ::
+                            Method "autotile_set_bitmask_mode" cls sig => cls -> sig
+autotile_set_bitmask_mode = runMethod @"autotile_set_bitmask_mode"
+
+autotile_set_size ::
+                    Method "autotile_set_size" cls sig => cls -> sig
+autotile_set_size = runMethod @"autotile_set_size"
+
+bake :: Method "bake" cls sig => cls -> sig
+bake = runMethod @"bake"
+
+base64_to_raw :: Method "base64_to_raw" cls sig => cls -> sig
+base64_to_raw = runMethod @"base64_to_raw"
+
+base64_to_utf8 :: Method "base64_to_utf8" cls sig => cls -> sig
+base64_to_utf8 = runMethod @"base64_to_utf8"
+
+base64_to_variant ::
+                    Method "base64_to_variant" cls sig => cls -> sig
+base64_to_variant = runMethod @"base64_to_variant"
+
+begin :: Method "begin" cls sig => cls -> sig
+begin = runMethod @"begin"
+
+bezier_track_get_key_in_handle ::
+                                 Method "bezier_track_get_key_in_handle" cls sig => cls -> sig
+bezier_track_get_key_in_handle
+  = runMethod @"bezier_track_get_key_in_handle"
+
+bezier_track_get_key_out_handle ::
+                                  Method "bezier_track_get_key_out_handle" cls sig => cls -> sig
+bezier_track_get_key_out_handle
+  = runMethod @"bezier_track_get_key_out_handle"
+
+bezier_track_get_key_value ::
+                             Method "bezier_track_get_key_value" cls sig => cls -> sig
+bezier_track_get_key_value
+  = runMethod @"bezier_track_get_key_value"
+
+bezier_track_insert_key ::
+                          Method "bezier_track_insert_key" cls sig => cls -> sig
+bezier_track_insert_key = runMethod @"bezier_track_insert_key"
+
+bezier_track_interpolate ::
+                           Method "bezier_track_interpolate" cls sig => cls -> sig
+bezier_track_interpolate = runMethod @"bezier_track_interpolate"
+
+bezier_track_set_key_in_handle ::
+                                 Method "bezier_track_set_key_in_handle" cls sig => cls -> sig
+bezier_track_set_key_in_handle
+  = runMethod @"bezier_track_set_key_in_handle"
+
+bezier_track_set_key_out_handle ::
+                                  Method "bezier_track_set_key_out_handle" cls sig => cls -> sig
+bezier_track_set_key_out_handle
+  = runMethod @"bezier_track_set_key_out_handle"
+
+bezier_track_set_key_value ::
+                             Method "bezier_track_set_key_value" cls sig => cls -> sig
+bezier_track_set_key_value
+  = runMethod @"bezier_track_set_key_value"
+
+bind_child_node_to_bone ::
+                          Method "bind_child_node_to_bone" cls sig => cls -> sig
+bind_child_node_to_bone = runMethod @"bind_child_node_to_bone"
+
+black_bars_set_images ::
+                        Method "black_bars_set_images" cls sig => cls -> sig
+black_bars_set_images = runMethod @"black_bars_set_images"
+
+black_bars_set_margins ::
+                         Method "black_bars_set_margins" cls sig => cls -> sig
+black_bars_set_margins = runMethod @"black_bars_set_margins"
+
+blend2_node_get_amount ::
+                         Method "blend2_node_get_amount" cls sig => cls -> sig
+blend2_node_get_amount = runMethod @"blend2_node_get_amount"
+
+blend2_node_set_amount ::
+                         Method "blend2_node_set_amount" cls sig => cls -> sig
+blend2_node_set_amount = runMethod @"blend2_node_set_amount"
+
+blend2_node_set_filter_path ::
+                              Method "blend2_node_set_filter_path" cls sig => cls -> sig
+blend2_node_set_filter_path
+  = runMethod @"blend2_node_set_filter_path"
+
+blend3_node_get_amount ::
+                         Method "blend3_node_get_amount" cls sig => cls -> sig
+blend3_node_get_amount = runMethod @"blend3_node_get_amount"
+
+blend3_node_set_amount ::
+                         Method "blend3_node_set_amount" cls sig => cls -> sig
+blend3_node_set_amount = runMethod @"blend3_node_set_amount"
+
+blend4_node_get_amount ::
+                         Method "blend4_node_get_amount" cls sig => cls -> sig
+blend4_node_get_amount = runMethod @"blend4_node_get_amount"
+
+blend4_node_set_amount ::
+                         Method "blend4_node_set_amount" cls sig => cls -> sig
+blend4_node_set_amount = runMethod @"blend4_node_set_amount"
+
+blend_animation :: Method "blend_animation" cls sig => cls -> sig
+blend_animation = runMethod @"blend_animation"
+
+blend_input :: Method "blend_input" cls sig => cls -> sig
+blend_input = runMethod @"blend_input"
+
+blend_node :: Method "blend_node" cls sig => cls -> sig
+blend_node = runMethod @"blend_node"
+
+blend_rect :: Method "blend_rect" cls sig => cls -> sig
+blend_rect = runMethod @"blend_rect"
+
+blend_rect_mask :: Method "blend_rect_mask" cls sig => cls -> sig
+blend_rect_mask = runMethod @"blend_rect_mask"
+
+blit_rect :: Method "blit_rect" cls sig => cls -> sig
+blit_rect = runMethod @"blit_rect"
+
+blit_rect_mask :: Method "blit_rect_mask" cls sig => cls -> sig
+blit_rect_mask = runMethod @"blit_rect_mask"
+
+body_add_central_force ::
+                         Method "body_add_central_force" cls sig => cls -> sig
+body_add_central_force = runMethod @"body_add_central_force"
+
+body_add_collision_exception ::
+                               Method "body_add_collision_exception" cls sig => cls -> sig
+body_add_collision_exception
+  = runMethod @"body_add_collision_exception"
+
+body_add_force :: Method "body_add_force" cls sig => cls -> sig
+body_add_force = runMethod @"body_add_force"
+
+body_add_shape :: Method "body_add_shape" cls sig => cls -> sig
+body_add_shape = runMethod @"body_add_shape"
+
+body_add_torque :: Method "body_add_torque" cls sig => cls -> sig
+body_add_torque = runMethod @"body_add_torque"
+
+body_apply_central_impulse ::
+                             Method "body_apply_central_impulse" cls sig => cls -> sig
+body_apply_central_impulse
+  = runMethod @"body_apply_central_impulse"
+
+body_apply_impulse ::
+                     Method "body_apply_impulse" cls sig => cls -> sig
+body_apply_impulse = runMethod @"body_apply_impulse"
+
+body_apply_torque_impulse ::
+                            Method "body_apply_torque_impulse" cls sig => cls -> sig
+body_apply_torque_impulse = runMethod @"body_apply_torque_impulse"
+
+body_attach_object_instance_id ::
+                                 Method "body_attach_object_instance_id" cls sig => cls -> sig
+body_attach_object_instance_id
+  = runMethod @"body_attach_object_instance_id"
+
+body_clear_shapes ::
+                    Method "body_clear_shapes" cls sig => cls -> sig
+body_clear_shapes = runMethod @"body_clear_shapes"
+
+body_create :: Method "body_create" cls sig => cls -> sig
+body_create = runMethod @"body_create"
+
+body_get_collision_layer ::
+                           Method "body_get_collision_layer" cls sig => cls -> sig
+body_get_collision_layer = runMethod @"body_get_collision_layer"
+
+body_get_collision_mask ::
+                          Method "body_get_collision_mask" cls sig => cls -> sig
+body_get_collision_mask = runMethod @"body_get_collision_mask"
+
+body_get_continuous_collision_detection_mode ::
+                                               Method "body_get_continuous_collision_detection_mode"
+                                                 cls sig =>
+                                               cls -> sig
+body_get_continuous_collision_detection_mode
+  = runMethod @"body_get_continuous_collision_detection_mode"
+
+body_get_direct_state ::
+                        Method "body_get_direct_state" cls sig => cls -> sig
+body_get_direct_state = runMethod @"body_get_direct_state"
+
+body_get_kinematic_safe_margin ::
+                                 Method "body_get_kinematic_safe_margin" cls sig => cls -> sig
+body_get_kinematic_safe_margin
+  = runMethod @"body_get_kinematic_safe_margin"
+
+body_get_max_contacts_reported ::
+                                 Method "body_get_max_contacts_reported" cls sig => cls -> sig
+body_get_max_contacts_reported
+  = runMethod @"body_get_max_contacts_reported"
+
+body_get_mode :: Method "body_get_mode" cls sig => cls -> sig
+body_get_mode = runMethod @"body_get_mode"
+
+body_get_object_instance_id ::
+                              Method "body_get_object_instance_id" cls sig => cls -> sig
+body_get_object_instance_id
+  = runMethod @"body_get_object_instance_id"
+
+body_get_param :: Method "body_get_param" cls sig => cls -> sig
+body_get_param = runMethod @"body_get_param"
+
+body_get_shape :: Method "body_get_shape" cls sig => cls -> sig
+body_get_shape = runMethod @"body_get_shape"
+
+body_get_shape_count ::
+                       Method "body_get_shape_count" cls sig => cls -> sig
+body_get_shape_count = runMethod @"body_get_shape_count"
+
+body_get_shape_metadata ::
+                          Method "body_get_shape_metadata" cls sig => cls -> sig
+body_get_shape_metadata = runMethod @"body_get_shape_metadata"
+
+body_get_shape_transform ::
+                           Method "body_get_shape_transform" cls sig => cls -> sig
+body_get_shape_transform = runMethod @"body_get_shape_transform"
+
+body_get_space :: Method "body_get_space" cls sig => cls -> sig
+body_get_space = runMethod @"body_get_space"
+
+body_get_state :: Method "body_get_state" cls sig => cls -> sig
+body_get_state = runMethod @"body_get_state"
+
+body_is_axis_locked ::
+                      Method "body_is_axis_locked" cls sig => cls -> sig
+body_is_axis_locked = runMethod @"body_is_axis_locked"
+
+body_is_continuous_collision_detection_enabled ::
+                                                 Method
+                                                   "body_is_continuous_collision_detection_enabled"
+                                                   cls sig =>
+                                                 cls -> sig
+body_is_continuous_collision_detection_enabled
+  = runMethod @"body_is_continuous_collision_detection_enabled"
+
+body_is_omitting_force_integration ::
+                                     Method "body_is_omitting_force_integration" cls sig =>
+                                     cls -> sig
+body_is_omitting_force_integration
+  = runMethod @"body_is_omitting_force_integration"
+
+body_is_ray_pickable ::
+                       Method "body_is_ray_pickable" cls sig => cls -> sig
+body_is_ray_pickable = runMethod @"body_is_ray_pickable"
+
+body_remove_collision_exception ::
+                                  Method "body_remove_collision_exception" cls sig => cls -> sig
+body_remove_collision_exception
+  = runMethod @"body_remove_collision_exception"
+
+body_remove_shape ::
+                    Method "body_remove_shape" cls sig => cls -> sig
+body_remove_shape = runMethod @"body_remove_shape"
+
+body_set_axis_lock ::
+                     Method "body_set_axis_lock" cls sig => cls -> sig
+body_set_axis_lock = runMethod @"body_set_axis_lock"
+
+body_set_axis_velocity ::
+                         Method "body_set_axis_velocity" cls sig => cls -> sig
+body_set_axis_velocity = runMethod @"body_set_axis_velocity"
+
+body_set_collision_layer ::
+                           Method "body_set_collision_layer" cls sig => cls -> sig
+body_set_collision_layer = runMethod @"body_set_collision_layer"
+
+body_set_collision_mask ::
+                          Method "body_set_collision_mask" cls sig => cls -> sig
+body_set_collision_mask = runMethod @"body_set_collision_mask"
+
+body_set_continuous_collision_detection_mode ::
+                                               Method "body_set_continuous_collision_detection_mode"
+                                                 cls sig =>
+                                               cls -> sig
+body_set_continuous_collision_detection_mode
+  = runMethod @"body_set_continuous_collision_detection_mode"
+
+body_set_enable_continuous_collision_detection ::
+                                                 Method
+                                                   "body_set_enable_continuous_collision_detection"
+                                                   cls sig =>
+                                                 cls -> sig
+body_set_enable_continuous_collision_detection
+  = runMethod @"body_set_enable_continuous_collision_detection"
+
+body_set_force_integration_callback ::
+                                      Method "body_set_force_integration_callback" cls sig =>
+                                      cls -> sig
+body_set_force_integration_callback
+  = runMethod @"body_set_force_integration_callback"
+
+body_set_kinematic_safe_margin ::
+                                 Method "body_set_kinematic_safe_margin" cls sig => cls -> sig
+body_set_kinematic_safe_margin
+  = runMethod @"body_set_kinematic_safe_margin"
+
+body_set_max_contacts_reported ::
+                                 Method "body_set_max_contacts_reported" cls sig => cls -> sig
+body_set_max_contacts_reported
+  = runMethod @"body_set_max_contacts_reported"
+
+body_set_mode :: Method "body_set_mode" cls sig => cls -> sig
+body_set_mode = runMethod @"body_set_mode"
+
+body_set_omit_force_integration ::
+                                  Method "body_set_omit_force_integration" cls sig => cls -> sig
+body_set_omit_force_integration
+  = runMethod @"body_set_omit_force_integration"
+
+body_set_param :: Method "body_set_param" cls sig => cls -> sig
+body_set_param = runMethod @"body_set_param"
+
+body_set_ray_pickable ::
+                        Method "body_set_ray_pickable" cls sig => cls -> sig
+body_set_ray_pickable = runMethod @"body_set_ray_pickable"
+
+body_set_shape :: Method "body_set_shape" cls sig => cls -> sig
+body_set_shape = runMethod @"body_set_shape"
+
+body_set_shape_as_one_way_collision ::
+                                      Method "body_set_shape_as_one_way_collision" cls sig =>
+                                      cls -> sig
+body_set_shape_as_one_way_collision
+  = runMethod @"body_set_shape_as_one_way_collision"
+
+body_set_shape_disabled ::
+                          Method "body_set_shape_disabled" cls sig => cls -> sig
+body_set_shape_disabled = runMethod @"body_set_shape_disabled"
+
+body_set_shape_metadata ::
+                          Method "body_set_shape_metadata" cls sig => cls -> sig
+body_set_shape_metadata = runMethod @"body_set_shape_metadata"
+
+body_set_shape_transform ::
+                           Method "body_set_shape_transform" cls sig => cls -> sig
+body_set_shape_transform = runMethod @"body_set_shape_transform"
+
+body_set_space :: Method "body_set_space" cls sig => cls -> sig
+body_set_space = runMethod @"body_set_space"
+
+body_set_state :: Method "body_set_state" cls sig => cls -> sig
+body_set_state = runMethod @"body_set_state"
+
+body_test_motion :: Method "body_test_motion" cls sig => cls -> sig
+body_test_motion = runMethod @"body_test_motion"
+
+broadcast :: Method "broadcast" cls sig => cls -> sig
+broadcast = runMethod @"broadcast"
+
+build :: Method "build" cls sig => cls -> sig
+build = runMethod @"build"
+
+build_box_planes :: Method "build_box_planes" cls sig => cls -> sig
+build_box_planes = runMethod @"build_box_planes"
+
+build_capsule_planes ::
+                       Method "build_capsule_planes" cls sig => cls -> sig
+build_capsule_planes = runMethod @"build_capsule_planes"
+
+build_cylinder_planes ::
+                        Method "build_cylinder_planes" cls sig => cls -> sig
+build_cylinder_planes = runMethod @"build_cylinder_planes"
+
+bumpmap_to_normalmap ::
+                       Method "bumpmap_to_normalmap" cls sig => cls -> sig
+bumpmap_to_normalmap = runMethod @"bumpmap_to_normalmap"
+
+call :: Method "call" cls sig => cls -> sig
+call = runMethod @"call"
+
+call_deferred :: Method "call_deferred" cls sig => cls -> sig
+call_deferred = runMethod @"call_deferred"
+
+call_func :: Method "call_func" cls sig => cls -> sig
+call_func = runMethod @"call_func"
+
+call_group :: Method "call_group" cls sig => cls -> sig
+call_group = runMethod @"call_group"
+
+call_group_flags :: Method "call_group_flags" cls sig => cls -> sig
+call_group_flags = runMethod @"call_group_flags"
+
+call_native :: Method "call_native" cls sig => cls -> sig
+call_native = runMethod @"call_native"
+
+callv :: Method "callv" cls sig => cls -> sig
+callv = runMethod @"callv"
+
+camera_create :: Method "camera_create" cls sig => cls -> sig
+camera_create = runMethod @"camera_create"
+
+camera_set_cull_mask ::
+                       Method "camera_set_cull_mask" cls sig => cls -> sig
+camera_set_cull_mask = runMethod @"camera_set_cull_mask"
+
+camera_set_environment ::
+                         Method "camera_set_environment" cls sig => cls -> sig
+camera_set_environment = runMethod @"camera_set_environment"
+
+camera_set_orthogonal ::
+                        Method "camera_set_orthogonal" cls sig => cls -> sig
+camera_set_orthogonal = runMethod @"camera_set_orthogonal"
+
+camera_set_perspective ::
+                         Method "camera_set_perspective" cls sig => cls -> sig
+camera_set_perspective = runMethod @"camera_set_perspective"
+
+camera_set_transform ::
+                       Method "camera_set_transform" cls sig => cls -> sig
+camera_set_transform = runMethod @"camera_set_transform"
+
+camera_set_use_vertical_aspect ::
+                                 Method "camera_set_use_vertical_aspect" cls sig => cls -> sig
+camera_set_use_vertical_aspect
+  = runMethod @"camera_set_use_vertical_aspect"
+
+can_connect_nodes ::
+                    Method "can_connect_nodes" cls sig => cls -> sig
+can_connect_nodes = runMethod @"can_connect_nodes"
+
+can_draw :: Method "can_draw" cls sig => cls -> sig
+can_draw = runMethod @"can_draw"
+
+can_drop_data :: Method "can_drop_data" cls sig => cls -> sig
+can_drop_data = runMethod @"can_drop_data"
+
+can_drop_data_fw :: Method "can_drop_data_fw" cls sig => cls -> sig
+can_drop_data_fw = runMethod @"can_drop_data_fw"
+
+can_fold :: Method "can_fold" cls sig => cls -> sig
+can_fold = runMethod @"can_fold"
+
+can_handle :: Method "can_handle" cls sig => cls -> sig
+can_handle = runMethod @"can_handle"
+
+can_instance :: Method "can_instance" cls sig => cls -> sig
+can_instance = runMethod @"can_instance"
+
+can_process :: Method "can_process" cls sig => cls -> sig
+can_process = runMethod @"can_process"
+
+can_translate_messages ::
+                         Method "can_translate_messages" cls sig => cls -> sig
+can_translate_messages = runMethod @"can_translate_messages"
+
+can_use_threads :: Method "can_use_threads" cls sig => cls -> sig
+can_use_threads = runMethod @"can_use_threads"
+
+cancel_request :: Method "cancel_request" cls sig => cls -> sig
+cancel_request = runMethod @"cancel_request"
+
+canvas_create :: Method "canvas_create" cls sig => cls -> sig
+canvas_create = runMethod @"canvas_create"
+
+canvas_item_add_circle ::
+                         Method "canvas_item_add_circle" cls sig => cls -> sig
+canvas_item_add_circle = runMethod @"canvas_item_add_circle"
+
+canvas_item_add_clip_ignore ::
+                              Method "canvas_item_add_clip_ignore" cls sig => cls -> sig
+canvas_item_add_clip_ignore
+  = runMethod @"canvas_item_add_clip_ignore"
+
+canvas_item_add_line ::
+                       Method "canvas_item_add_line" cls sig => cls -> sig
+canvas_item_add_line = runMethod @"canvas_item_add_line"
+
+canvas_item_add_mesh ::
+                       Method "canvas_item_add_mesh" cls sig => cls -> sig
+canvas_item_add_mesh = runMethod @"canvas_item_add_mesh"
+
+canvas_item_add_multimesh ::
+                            Method "canvas_item_add_multimesh" cls sig => cls -> sig
+canvas_item_add_multimesh = runMethod @"canvas_item_add_multimesh"
+
+canvas_item_add_nine_patch ::
+                             Method "canvas_item_add_nine_patch" cls sig => cls -> sig
+canvas_item_add_nine_patch
+  = runMethod @"canvas_item_add_nine_patch"
+
+canvas_item_add_particles ::
+                            Method "canvas_item_add_particles" cls sig => cls -> sig
+canvas_item_add_particles = runMethod @"canvas_item_add_particles"
+
+canvas_item_add_polygon ::
+                          Method "canvas_item_add_polygon" cls sig => cls -> sig
+canvas_item_add_polygon = runMethod @"canvas_item_add_polygon"
+
+canvas_item_add_polyline ::
+                           Method "canvas_item_add_polyline" cls sig => cls -> sig
+canvas_item_add_polyline = runMethod @"canvas_item_add_polyline"
+
+canvas_item_add_primitive ::
+                            Method "canvas_item_add_primitive" cls sig => cls -> sig
+canvas_item_add_primitive = runMethod @"canvas_item_add_primitive"
+
+canvas_item_add_rect ::
+                       Method "canvas_item_add_rect" cls sig => cls -> sig
+canvas_item_add_rect = runMethod @"canvas_item_add_rect"
+
+canvas_item_add_set_transform ::
+                                Method "canvas_item_add_set_transform" cls sig => cls -> sig
+canvas_item_add_set_transform
+  = runMethod @"canvas_item_add_set_transform"
+
+canvas_item_add_texture_rect ::
+                               Method "canvas_item_add_texture_rect" cls sig => cls -> sig
+canvas_item_add_texture_rect
+  = runMethod @"canvas_item_add_texture_rect"
+
+canvas_item_add_texture_rect_region ::
+                                      Method "canvas_item_add_texture_rect_region" cls sig =>
+                                      cls -> sig
+canvas_item_add_texture_rect_region
+  = runMethod @"canvas_item_add_texture_rect_region"
+
+canvas_item_add_triangle_array ::
+                                 Method "canvas_item_add_triangle_array" cls sig => cls -> sig
+canvas_item_add_triangle_array
+  = runMethod @"canvas_item_add_triangle_array"
+
+canvas_item_clear ::
+                    Method "canvas_item_clear" cls sig => cls -> sig
+canvas_item_clear = runMethod @"canvas_item_clear"
+
+canvas_item_create ::
+                     Method "canvas_item_create" cls sig => cls -> sig
+canvas_item_create = runMethod @"canvas_item_create"
+
+canvas_item_set_clip ::
+                       Method "canvas_item_set_clip" cls sig => cls -> sig
+canvas_item_set_clip = runMethod @"canvas_item_set_clip"
+
+canvas_item_set_copy_to_backbuffer ::
+                                     Method "canvas_item_set_copy_to_backbuffer" cls sig =>
+                                     cls -> sig
+canvas_item_set_copy_to_backbuffer
+  = runMethod @"canvas_item_set_copy_to_backbuffer"
+
+canvas_item_set_custom_rect ::
+                              Method "canvas_item_set_custom_rect" cls sig => cls -> sig
+canvas_item_set_custom_rect
+  = runMethod @"canvas_item_set_custom_rect"
+
+canvas_item_set_distance_field_mode ::
+                                      Method "canvas_item_set_distance_field_mode" cls sig =>
+                                      cls -> sig
+canvas_item_set_distance_field_mode
+  = runMethod @"canvas_item_set_distance_field_mode"
+
+canvas_item_set_draw_behind_parent ::
+                                     Method "canvas_item_set_draw_behind_parent" cls sig =>
+                                     cls -> sig
+canvas_item_set_draw_behind_parent
+  = runMethod @"canvas_item_set_draw_behind_parent"
+
+canvas_item_set_draw_index ::
+                             Method "canvas_item_set_draw_index" cls sig => cls -> sig
+canvas_item_set_draw_index
+  = runMethod @"canvas_item_set_draw_index"
+
+canvas_item_set_light_mask ::
+                             Method "canvas_item_set_light_mask" cls sig => cls -> sig
+canvas_item_set_light_mask
+  = runMethod @"canvas_item_set_light_mask"
+
+canvas_item_set_material ::
+                           Method "canvas_item_set_material" cls sig => cls -> sig
+canvas_item_set_material = runMethod @"canvas_item_set_material"
+
+canvas_item_set_modulate ::
+                           Method "canvas_item_set_modulate" cls sig => cls -> sig
+canvas_item_set_modulate = runMethod @"canvas_item_set_modulate"
+
+canvas_item_set_parent ::
+                         Method "canvas_item_set_parent" cls sig => cls -> sig
+canvas_item_set_parent = runMethod @"canvas_item_set_parent"
+
+canvas_item_set_self_modulate ::
+                                Method "canvas_item_set_self_modulate" cls sig => cls -> sig
+canvas_item_set_self_modulate
+  = runMethod @"canvas_item_set_self_modulate"
+
+canvas_item_set_sort_children_by_y ::
+                                     Method "canvas_item_set_sort_children_by_y" cls sig =>
+                                     cls -> sig
+canvas_item_set_sort_children_by_y
+  = runMethod @"canvas_item_set_sort_children_by_y"
+
+canvas_item_set_transform ::
+                            Method "canvas_item_set_transform" cls sig => cls -> sig
+canvas_item_set_transform = runMethod @"canvas_item_set_transform"
+
+canvas_item_set_use_parent_material ::
+                                      Method "canvas_item_set_use_parent_material" cls sig =>
+                                      cls -> sig
+canvas_item_set_use_parent_material
+  = runMethod @"canvas_item_set_use_parent_material"
+
+canvas_item_set_visible ::
+                          Method "canvas_item_set_visible" cls sig => cls -> sig
+canvas_item_set_visible = runMethod @"canvas_item_set_visible"
+
+canvas_item_set_z_as_relative_to_parent ::
+                                          Method "canvas_item_set_z_as_relative_to_parent" cls
+                                            sig =>
+                                          cls -> sig
+canvas_item_set_z_as_relative_to_parent
+  = runMethod @"canvas_item_set_z_as_relative_to_parent"
+
+canvas_item_set_z_index ::
+                          Method "canvas_item_set_z_index" cls sig => cls -> sig
+canvas_item_set_z_index = runMethod @"canvas_item_set_z_index"
+
+canvas_light_attach_to_canvas ::
+                                Method "canvas_light_attach_to_canvas" cls sig => cls -> sig
+canvas_light_attach_to_canvas
+  = runMethod @"canvas_light_attach_to_canvas"
+
+canvas_light_create ::
+                      Method "canvas_light_create" cls sig => cls -> sig
+canvas_light_create = runMethod @"canvas_light_create"
+
+canvas_light_occluder_attach_to_canvas ::
+                                         Method "canvas_light_occluder_attach_to_canvas" cls sig =>
+                                         cls -> sig
+canvas_light_occluder_attach_to_canvas
+  = runMethod @"canvas_light_occluder_attach_to_canvas"
+
+canvas_light_occluder_create ::
+                               Method "canvas_light_occluder_create" cls sig => cls -> sig
+canvas_light_occluder_create
+  = runMethod @"canvas_light_occluder_create"
+
+canvas_light_occluder_set_enabled ::
+                                    Method "canvas_light_occluder_set_enabled" cls sig => cls -> sig
+canvas_light_occluder_set_enabled
+  = runMethod @"canvas_light_occluder_set_enabled"
+
+canvas_light_occluder_set_light_mask ::
+                                       Method "canvas_light_occluder_set_light_mask" cls sig =>
+                                       cls -> sig
+canvas_light_occluder_set_light_mask
+  = runMethod @"canvas_light_occluder_set_light_mask"
+
+canvas_light_occluder_set_polygon ::
+                                    Method "canvas_light_occluder_set_polygon" cls sig => cls -> sig
+canvas_light_occluder_set_polygon
+  = runMethod @"canvas_light_occluder_set_polygon"
+
+canvas_light_occluder_set_transform ::
+                                      Method "canvas_light_occluder_set_transform" cls sig =>
+                                      cls -> sig
+canvas_light_occluder_set_transform
+  = runMethod @"canvas_light_occluder_set_transform"
+
+canvas_light_set_color ::
+                         Method "canvas_light_set_color" cls sig => cls -> sig
+canvas_light_set_color = runMethod @"canvas_light_set_color"
+
+canvas_light_set_enabled ::
+                           Method "canvas_light_set_enabled" cls sig => cls -> sig
+canvas_light_set_enabled = runMethod @"canvas_light_set_enabled"
+
+canvas_light_set_energy ::
+                          Method "canvas_light_set_energy" cls sig => cls -> sig
+canvas_light_set_energy = runMethod @"canvas_light_set_energy"
+
+canvas_light_set_height ::
+                          Method "canvas_light_set_height" cls sig => cls -> sig
+canvas_light_set_height = runMethod @"canvas_light_set_height"
+
+canvas_light_set_item_cull_mask ::
+                                  Method "canvas_light_set_item_cull_mask" cls sig => cls -> sig
+canvas_light_set_item_cull_mask
+  = runMethod @"canvas_light_set_item_cull_mask"
+
+canvas_light_set_item_shadow_cull_mask ::
+                                         Method "canvas_light_set_item_shadow_cull_mask" cls sig =>
+                                         cls -> sig
+canvas_light_set_item_shadow_cull_mask
+  = runMethod @"canvas_light_set_item_shadow_cull_mask"
+
+canvas_light_set_layer_range ::
+                               Method "canvas_light_set_layer_range" cls sig => cls -> sig
+canvas_light_set_layer_range
+  = runMethod @"canvas_light_set_layer_range"
+
+canvas_light_set_mode ::
+                        Method "canvas_light_set_mode" cls sig => cls -> sig
+canvas_light_set_mode = runMethod @"canvas_light_set_mode"
+
+canvas_light_set_scale ::
+                         Method "canvas_light_set_scale" cls sig => cls -> sig
+canvas_light_set_scale = runMethod @"canvas_light_set_scale"
+
+canvas_light_set_shadow_buffer_size ::
+                                      Method "canvas_light_set_shadow_buffer_size" cls sig =>
+                                      cls -> sig
+canvas_light_set_shadow_buffer_size
+  = runMethod @"canvas_light_set_shadow_buffer_size"
+
+canvas_light_set_shadow_color ::
+                                Method "canvas_light_set_shadow_color" cls sig => cls -> sig
+canvas_light_set_shadow_color
+  = runMethod @"canvas_light_set_shadow_color"
+
+canvas_light_set_shadow_enabled ::
+                                  Method "canvas_light_set_shadow_enabled" cls sig => cls -> sig
+canvas_light_set_shadow_enabled
+  = runMethod @"canvas_light_set_shadow_enabled"
+
+canvas_light_set_shadow_filter ::
+                                 Method "canvas_light_set_shadow_filter" cls sig => cls -> sig
+canvas_light_set_shadow_filter
+  = runMethod @"canvas_light_set_shadow_filter"
+
+canvas_light_set_shadow_gradient_length ::
+                                          Method "canvas_light_set_shadow_gradient_length" cls
+                                            sig =>
+                                          cls -> sig
+canvas_light_set_shadow_gradient_length
+  = runMethod @"canvas_light_set_shadow_gradient_length"
+
+canvas_light_set_shadow_smooth ::
+                                 Method "canvas_light_set_shadow_smooth" cls sig => cls -> sig
+canvas_light_set_shadow_smooth
+  = runMethod @"canvas_light_set_shadow_smooth"
+
+canvas_light_set_texture ::
+                           Method "canvas_light_set_texture" cls sig => cls -> sig
+canvas_light_set_texture = runMethod @"canvas_light_set_texture"
+
+canvas_light_set_texture_offset ::
+                                  Method "canvas_light_set_texture_offset" cls sig => cls -> sig
+canvas_light_set_texture_offset
+  = runMethod @"canvas_light_set_texture_offset"
+
+canvas_light_set_transform ::
+                             Method "canvas_light_set_transform" cls sig => cls -> sig
+canvas_light_set_transform
+  = runMethod @"canvas_light_set_transform"
+
+canvas_light_set_z_range ::
+                           Method "canvas_light_set_z_range" cls sig => cls -> sig
+canvas_light_set_z_range = runMethod @"canvas_light_set_z_range"
+
+canvas_occluder_polygon_create ::
+                                 Method "canvas_occluder_polygon_create" cls sig => cls -> sig
+canvas_occluder_polygon_create
+  = runMethod @"canvas_occluder_polygon_create"
+
+canvas_occluder_polygon_set_cull_mode ::
+                                        Method "canvas_occluder_polygon_set_cull_mode" cls sig =>
+                                        cls -> sig
+canvas_occluder_polygon_set_cull_mode
+  = runMethod @"canvas_occluder_polygon_set_cull_mode"
+
+canvas_occluder_polygon_set_shape ::
+                                    Method "canvas_occluder_polygon_set_shape" cls sig => cls -> sig
+canvas_occluder_polygon_set_shape
+  = runMethod @"canvas_occluder_polygon_set_shape"
+
+canvas_occluder_polygon_set_shape_as_lines ::
+                                             Method "canvas_occluder_polygon_set_shape_as_lines" cls
+                                               sig =>
+                                             cls -> sig
+canvas_occluder_polygon_set_shape_as_lines
+  = runMethod @"canvas_occluder_polygon_set_shape_as_lines"
+
+canvas_set_item_mirroring ::
+                            Method "canvas_set_item_mirroring" cls sig => cls -> sig
+canvas_set_item_mirroring = runMethod @"canvas_set_item_mirroring"
+
+canvas_set_modulate ::
+                      Method "canvas_set_modulate" cls sig => cls -> sig
+canvas_set_modulate = runMethod @"canvas_set_modulate"
+
+capsule_shape_create ::
+                       Method "capsule_shape_create" cls sig => cls -> sig
+capsule_shape_create = runMethod @"capsule_shape_create"
+
+capture_aabb :: Method "capture_aabb" cls sig => cls -> sig
+capture_aabb = runMethod @"capture_aabb"
+
+capture_get_device ::
+                     Method "capture_get_device" cls sig => cls -> sig
+capture_get_device = runMethod @"capture_get_device"
+
+capture_get_device_list ::
+                          Method "capture_get_device_list" cls sig => cls -> sig
+capture_get_device_list = runMethod @"capture_get_device_list"
+
+capture_rect :: Method "capture_rect" cls sig => cls -> sig
+capture_rect = runMethod @"capture_rect"
+
+capture_set_device ::
+                     Method "capture_set_device" cls sig => cls -> sig
+capture_set_device = runMethod @"capture_set_device"
+
+cast_motion :: Method "cast_motion" cls sig => cls -> sig
+cast_motion = runMethod @"cast_motion"
+
+center_geometry :: Method "center_geometry" cls sig => cls -> sig
+center_geometry = runMethod @"center_geometry"
+
+center_on_hmd :: Method "center_on_hmd" cls sig => cls -> sig
+center_on_hmd = runMethod @"center_on_hmd"
+
+center_window :: Method "center_window" cls sig => cls -> sig
+center_window = runMethod @"center_window"
+
+change_dir :: Method "change_dir" cls sig => cls -> sig
+change_dir = runMethod @"change_dir"
+
+change_scene :: Method "change_scene" cls sig => cls -> sig
+change_scene = runMethod @"change_scene"
+
+change_scene_to :: Method "change_scene_to" cls sig => cls -> sig
+change_scene_to = runMethod @"change_scene_to"
+
+check_for_invalidation ::
+                         Method "check_for_invalidation" cls sig => cls -> sig
+check_for_invalidation = runMethod @"check_for_invalidation"
+
+circle_shape_create ::
+                      Method "circle_shape_create" cls sig => cls -> sig
+circle_shape_create = runMethod @"circle_shape_create"
+
+class_exists :: Method "class_exists" cls sig => cls -> sig
+class_exists = runMethod @"class_exists"
+
+class_get_category ::
+                     Method "class_get_category" cls sig => cls -> sig
+class_get_category = runMethod @"class_get_category"
+
+class_get_integer_constant ::
+                             Method "class_get_integer_constant" cls sig => cls -> sig
+class_get_integer_constant
+  = runMethod @"class_get_integer_constant"
+
+class_get_integer_constant_list ::
+                                  Method "class_get_integer_constant_list" cls sig => cls -> sig
+class_get_integer_constant_list
+  = runMethod @"class_get_integer_constant_list"
+
+class_get_method_list ::
+                        Method "class_get_method_list" cls sig => cls -> sig
+class_get_method_list = runMethod @"class_get_method_list"
+
+class_get_property ::
+                     Method "class_get_property" cls sig => cls -> sig
+class_get_property = runMethod @"class_get_property"
+
+class_get_property_list ::
+                          Method "class_get_property_list" cls sig => cls -> sig
+class_get_property_list = runMethod @"class_get_property_list"
+
+class_get_signal :: Method "class_get_signal" cls sig => cls -> sig
+class_get_signal = runMethod @"class_get_signal"
+
+class_get_signal_list ::
+                        Method "class_get_signal_list" cls sig => cls -> sig
+class_get_signal_list = runMethod @"class_get_signal_list"
+
+class_has_integer_constant ::
+                             Method "class_has_integer_constant" cls sig => cls -> sig
+class_has_integer_constant
+  = runMethod @"class_has_integer_constant"
+
+class_has_method :: Method "class_has_method" cls sig => cls -> sig
+class_has_method = runMethod @"class_has_method"
+
+class_has_signal :: Method "class_has_signal" cls sig => cls -> sig
+class_has_signal = runMethod @"class_has_signal"
+
+class_set_property ::
+                     Method "class_set_property" cls sig => cls -> sig
+class_set_property = runMethod @"class_set_property"
+
+clean_dupes :: Method "clean_dupes" cls sig => cls -> sig
+clean_dupes = runMethod @"clean_dupes"
+
+clear :: Method "clear" cls sig => cls -> sig
+clear = runMethod @"clear"
+
+clear_all :: Method "clear_all" cls sig => cls -> sig
+clear_all = runMethod @"clear_all"
+
+clear_all_slots :: Method "clear_all_slots" cls sig => cls -> sig
+clear_all_slots = runMethod @"clear_all_slots"
+
+clear_baked_meshes ::
+                     Method "clear_baked_meshes" cls sig => cls -> sig
+clear_baked_meshes = runMethod @"clear_baked_meshes"
+
+clear_blend_shapes ::
+                     Method "clear_blend_shapes" cls sig => cls -> sig
+clear_blend_shapes = runMethod @"clear_blend_shapes"
+
+clear_bones :: Method "clear_bones" cls sig => cls -> sig
+clear_bones = runMethod @"clear_bones"
+
+clear_cache :: Method "clear_cache" cls sig => cls -> sig
+clear_cache = runMethod @"clear_cache"
+
+clear_caches :: Method "clear_caches" cls sig => cls -> sig
+clear_caches = runMethod @"clear_caches"
+
+clear_color :: Method "clear_color" cls sig => cls -> sig
+clear_color = runMethod @"clear_color"
+
+clear_colors :: Method "clear_colors" cls sig => cls -> sig
+clear_colors = runMethod @"clear_colors"
+
+clear_connections ::
+                    Method "clear_connections" cls sig => cls -> sig
+clear_connections = runMethod @"clear_connections"
+
+clear_constant :: Method "clear_constant" cls sig => cls -> sig
+clear_constant = runMethod @"clear_constant"
+
+clear_current :: Method "clear_current" cls sig => cls -> sig
+clear_current = runMethod @"clear_current"
+
+clear_custom_bg_color ::
+                        Method "clear_custom_bg_color" cls sig => cls -> sig
+clear_custom_bg_color = runMethod @"clear_custom_bg_color"
+
+clear_custom_color ::
+                     Method "clear_custom_color" cls sig => cls -> sig
+clear_custom_color = runMethod @"clear_custom_color"
+
+clear_devices :: Method "clear_devices" cls sig => cls -> sig
+clear_devices = runMethod @"clear_devices"
+
+clear_exceptions :: Method "clear_exceptions" cls sig => cls -> sig
+clear_exceptions = runMethod @"clear_exceptions"
+
+clear_excluded_objects ::
+                         Method "clear_excluded_objects" cls sig => cls -> sig
+clear_excluded_objects = runMethod @"clear_excluded_objects"
+
+clear_filters :: Method "clear_filters" cls sig => cls -> sig
+clear_filters = runMethod @"clear_filters"
+
+clear_font :: Method "clear_font" cls sig => cls -> sig
+clear_font = runMethod @"clear_font"
+
+clear_history :: Method "clear_history" cls sig => cls -> sig
+clear_history = runMethod @"clear_history"
+
+clear_icon :: Method "clear_icon" cls sig => cls -> sig
+clear_icon = runMethod @"clear_icon"
+
+clear_mipmaps :: Method "clear_mipmaps" cls sig => cls -> sig
+clear_mipmaps = runMethod @"clear_mipmaps"
+
+clear_outlines :: Method "clear_outlines" cls sig => cls -> sig
+clear_outlines = runMethod @"clear_outlines"
+
+clear_points :: Method "clear_points" cls sig => cls -> sig
+clear_points = runMethod @"clear_points"
+
+clear_polygons :: Method "clear_polygons" cls sig => cls -> sig
+clear_polygons = runMethod @"clear_polygons"
+
+clear_queue :: Method "clear_queue" cls sig => cls -> sig
+clear_queue = runMethod @"clear_queue"
+
+clear_slot :: Method "clear_slot" cls sig => cls -> sig
+clear_slot = runMethod @"clear_slot"
+
+clear_stylebox :: Method "clear_stylebox" cls sig => cls -> sig
+clear_stylebox = runMethod @"clear_stylebox"
+
+clear_undo_history ::
+                     Method "clear_undo_history" cls sig => cls -> sig
+clear_undo_history = runMethod @"clear_undo_history"
+
+clear_users :: Method "clear_users" cls sig => cls -> sig
+clear_users = runMethod @"clear_users"
+
+clip_polygon :: Method "clip_polygon" cls sig => cls -> sig
+clip_polygon = runMethod @"clip_polygon"
+
+close :: Method "close" cls sig => cls -> sig
+close = runMethod @"close"
+
+close_connection :: Method "close_connection" cls sig => cls -> sig
+close_connection = runMethod @"close_connection"
+
+close_midi_inputs ::
+                    Method "close_midi_inputs" cls sig => cls -> sig
+close_midi_inputs = runMethod @"close_midi_inputs"
+
+collide :: Method "collide" cls sig => cls -> sig
+collide = runMethod @"collide"
+
+collide_and_get_contacts ::
+                           Method "collide_and_get_contacts" cls sig => cls -> sig
+collide_and_get_contacts = runMethod @"collide_and_get_contacts"
+
+collide_shape :: Method "collide_shape" cls sig => cls -> sig
+collide_shape = runMethod @"collide_shape"
+
+collide_with_motion ::
+                      Method "collide_with_motion" cls sig => cls -> sig
+collide_with_motion = runMethod @"collide_with_motion"
+
+collide_with_motion_and_get_contacts ::
+                                       Method "collide_with_motion_and_get_contacts" cls sig =>
+                                       cls -> sig
+collide_with_motion_and_get_contacts
+  = runMethod @"collide_with_motion_and_get_contacts"
+
+commit :: Method "commit" cls sig => cls -> sig
+commit = runMethod @"commit"
+
+commit_action :: Method "commit_action" cls sig => cls -> sig
+commit_action = runMethod @"commit_action"
+
+commit_handle :: Method "commit_handle" cls sig => cls -> sig
+commit_handle = runMethod @"commit_handle"
+
+commit_to_surface ::
+                    Method "commit_to_surface" cls sig => cls -> sig
+commit_to_surface = runMethod @"commit_to_surface"
+
+compile :: Method "compile" cls sig => cls -> sig
+compile = runMethod @"compile"
+
+compress :: Method "compress" cls sig => cls -> sig
+compress = runMethod @"compress"
+
+concave_polygon_shape_create ::
+                               Method "concave_polygon_shape_create" cls sig => cls -> sig
+concave_polygon_shape_create
+  = runMethod @"concave_polygon_shape_create"
+
+cone_twist_joint_get_param ::
+                             Method "cone_twist_joint_get_param" cls sig => cls -> sig
+cone_twist_joint_get_param
+  = runMethod @"cone_twist_joint_get_param"
+
+cone_twist_joint_set_param ::
+                             Method "cone_twist_joint_set_param" cls sig => cls -> sig
+cone_twist_joint_set_param
+  = runMethod @"cone_twist_joint_set_param"
+
+config :: Method "config" cls sig => cls -> sig
+config = runMethod @"config"
+
+connect :: Method "connect" cls sig => cls -> sig
+connect = runMethod @"connect"
+
+connect_node :: Method "connect_node" cls sig => cls -> sig
+connect_node = runMethod @"connect_node"
+
+connect_nodes :: Method "connect_nodes" cls sig => cls -> sig
+connect_nodes = runMethod @"connect_nodes"
+
+connect_points :: Method "connect_points" cls sig => cls -> sig
+connect_points = runMethod @"connect_points"
+
+connect_to_host :: Method "connect_to_host" cls sig => cls -> sig
+connect_to_host = runMethod @"connect_to_host"
+
+connect_to_signal ::
+                    Method "connect_to_signal" cls sig => cls -> sig
+connect_to_signal = runMethod @"connect_to_signal"
+
+connect_to_stream ::
+                    Method "connect_to_stream" cls sig => cls -> sig
+connect_to_stream = runMethod @"connect_to_stream"
+
+connect_to_url :: Method "connect_to_url" cls sig => cls -> sig
+connect_to_url = runMethod @"connect_to_url"
+
+convert :: Method "convert" cls sig => cls -> sig
+convert = runMethod @"convert"
+
+convert_from_particles ::
+                         Method "convert_from_particles" cls sig => cls -> sig
+convert_from_particles = runMethod @"convert_from_particles"
+
+convex_hull_2d :: Method "convex_hull_2d" cls sig => cls -> sig
+convex_hull_2d = runMethod @"convex_hull_2d"
+
+convex_polygon_shape_create ::
+                              Method "convex_polygon_shape_create" cls sig => cls -> sig
+convex_polygon_shape_create
+  = runMethod @"convex_polygon_shape_create"
+
+copy :: Method "copy" cls sig => cls -> sig
+copy = runMethod @"copy"
+
+copy_default_theme ::
+                     Method "copy_default_theme" cls sig => cls -> sig
+copy_default_theme = runMethod @"copy_default_theme"
+
+copy_from :: Method "copy_from" cls sig => cls -> sig
+copy_from = runMethod @"copy_from"
+
+copy_track :: Method "copy_track" cls sig => cls -> sig
+copy_track = runMethod @"copy_track"
+
+create :: Method "create" cls sig => cls -> sig
+create = runMethod @"create"
+
+create_action :: Method "create_action" cls sig => cls -> sig
+create_action = runMethod @"create_action"
+
+create_client :: Method "create_client" cls sig => cls -> sig
+create_client = runMethod @"create_client"
+
+create_convex_collision ::
+                          Method "create_convex_collision" cls sig => cls -> sig
+create_convex_collision = runMethod @"create_convex_collision"
+
+create_convex_shape ::
+                      Method "create_convex_shape" cls sig => cls -> sig
+create_convex_shape = runMethod @"create_convex_shape"
+
+create_debug_tangents ::
+                        Method "create_debug_tangents" cls sig => cls -> sig
+create_debug_tangents = runMethod @"create_debug_tangents"
+
+create_from :: Method "create_from" cls sig => cls -> sig
+create_from = runMethod @"create_from"
+
+create_from_data :: Method "create_from_data" cls sig => cls -> sig
+create_from_data = runMethod @"create_from_data"
+
+create_from_fnt :: Method "create_from_fnt" cls sig => cls -> sig
+create_from_fnt = runMethod @"create_from_fnt"
+
+create_from_image ::
+                    Method "create_from_image" cls sig => cls -> sig
+create_from_image = runMethod @"create_from_image"
+
+create_from_image_alpha ::
+                          Method "create_from_image_alpha" cls sig => cls -> sig
+create_from_image_alpha = runMethod @"create_from_image_alpha"
+
+create_from_mesh :: Method "create_from_mesh" cls sig => cls -> sig
+create_from_mesh = runMethod @"create_from_mesh"
+
+create_from_surface ::
+                      Method "create_from_surface" cls sig => cls -> sig
+create_from_surface = runMethod @"create_from_surface"
+
+create_instance :: Method "create_instance" cls sig => cls -> sig
+create_instance = runMethod @"create_instance"
+
+create_item :: Method "create_item" cls sig => cls -> sig
+create_item = runMethod @"create_item"
+
+create_outline :: Method "create_outline" cls sig => cls -> sig
+create_outline = runMethod @"create_outline"
+
+create_server :: Method "create_server" cls sig => cls -> sig
+create_server = runMethod @"create_server"
+
+create_shape_owner ::
+                     Method "create_shape_owner" cls sig => cls -> sig
+create_shape_owner = runMethod @"create_shape_owner"
+
+create_tile :: Method "create_tile" cls sig => cls -> sig
+create_tile = runMethod @"create_tile"
+
+create_timer :: Method "create_timer" cls sig => cls -> sig
+create_timer = runMethod @"create_timer"
+
+create_trimesh_collision ::
+                           Method "create_trimesh_collision" cls sig => cls -> sig
+create_trimesh_collision = runMethod @"create_trimesh_collision"
+
+create_trimesh_shape ::
+                       Method "create_trimesh_shape" cls sig => cls -> sig
+create_trimesh_shape = runMethod @"create_trimesh_shape"
+
+crop :: Method "crop" cls sig => cls -> sig
+crop = runMethod @"crop"
+
+current_is_dir :: Method "current_is_dir" cls sig => cls -> sig
+current_is_dir = runMethod @"current_is_dir"
+
+cursor_get_blink_enabled ::
+                           Method "cursor_get_blink_enabled" cls sig => cls -> sig
+cursor_get_blink_enabled = runMethod @"cursor_get_blink_enabled"
+
+cursor_get_blink_speed ::
+                         Method "cursor_get_blink_speed" cls sig => cls -> sig
+cursor_get_blink_speed = runMethod @"cursor_get_blink_speed"
+
+cursor_get_column ::
+                    Method "cursor_get_column" cls sig => cls -> sig
+cursor_get_column = runMethod @"cursor_get_column"
+
+cursor_get_line :: Method "cursor_get_line" cls sig => cls -> sig
+cursor_get_line = runMethod @"cursor_get_line"
+
+cursor_is_block_mode ::
+                       Method "cursor_is_block_mode" cls sig => cls -> sig
+cursor_is_block_mode = runMethod @"cursor_is_block_mode"
+
+cursor_set_blink_enabled ::
+                           Method "cursor_set_blink_enabled" cls sig => cls -> sig
+cursor_set_blink_enabled = runMethod @"cursor_set_blink_enabled"
+
+cursor_set_blink_speed ::
+                         Method "cursor_set_blink_speed" cls sig => cls -> sig
+cursor_set_blink_speed = runMethod @"cursor_set_blink_speed"
+
+cursor_set_block_mode ::
+                        Method "cursor_set_block_mode" cls sig => cls -> sig
+cursor_set_block_mode = runMethod @"cursor_set_block_mode"
+
+cursor_set_column ::
+                    Method "cursor_set_column" cls sig => cls -> sig
+cursor_set_column = runMethod @"cursor_set_column"
+
+cursor_set_line :: Method "cursor_set_line" cls sig => cls -> sig
+cursor_set_line = runMethod @"cursor_set_line"
+
+custom_signal_add_argument ::
+                             Method "custom_signal_add_argument" cls sig => cls -> sig
+custom_signal_add_argument
+  = runMethod @"custom_signal_add_argument"
+
+custom_signal_get_argument_count ::
+                                   Method "custom_signal_get_argument_count" cls sig => cls -> sig
+custom_signal_get_argument_count
+  = runMethod @"custom_signal_get_argument_count"
+
+custom_signal_get_argument_name ::
+                                  Method "custom_signal_get_argument_name" cls sig => cls -> sig
+custom_signal_get_argument_name
+  = runMethod @"custom_signal_get_argument_name"
+
+custom_signal_get_argument_type ::
+                                  Method "custom_signal_get_argument_type" cls sig => cls -> sig
+custom_signal_get_argument_type
+  = runMethod @"custom_signal_get_argument_type"
+
+custom_signal_remove_argument ::
+                                Method "custom_signal_remove_argument" cls sig => cls -> sig
+custom_signal_remove_argument
+  = runMethod @"custom_signal_remove_argument"
+
+custom_signal_set_argument_name ::
+                                  Method "custom_signal_set_argument_name" cls sig => cls -> sig
+custom_signal_set_argument_name
+  = runMethod @"custom_signal_set_argument_name"
+
+custom_signal_set_argument_type ::
+                                  Method "custom_signal_set_argument_type" cls sig => cls -> sig
+custom_signal_set_argument_type
+  = runMethod @"custom_signal_set_argument_type"
+
+custom_signal_swap_argument ::
+                              Method "custom_signal_swap_argument" cls sig => cls -> sig
+custom_signal_swap_argument
+  = runMethod @"custom_signal_swap_argument"
+
+cut :: Method "cut" cls sig => cls -> sig
+cut = runMethod @"cut"
+
+damped_spring_joint_create ::
+                             Method "damped_spring_joint_create" cls sig => cls -> sig
+damped_spring_joint_create
+  = runMethod @"damped_spring_joint_create"
+
+damped_string_joint_get_param ::
+                                Method "damped_string_joint_get_param" cls sig => cls -> sig
+damped_string_joint_get_param
+  = runMethod @"damped_string_joint_get_param"
+
+damped_string_joint_set_param ::
+                                Method "damped_string_joint_set_param" cls sig => cls -> sig
+damped_string_joint_set_param
+  = runMethod @"damped_string_joint_set_param"
+
+data_connect :: Method "data_connect" cls sig => cls -> sig
+data_connect = runMethod @"data_connect"
+
+data_disconnect :: Method "data_disconnect" cls sig => cls -> sig
+data_disconnect = runMethod @"data_disconnect"
+
+debug_bake :: Method "debug_bake" cls sig => cls -> sig
+debug_bake = runMethod @"debug_bake"
+
+decompress :: Method "decompress" cls sig => cls -> sig
+decompress = runMethod @"decompress"
+
+deindex :: Method "deindex" cls sig => cls -> sig
+deindex = runMethod @"deindex"
+
+delay_msec :: Method "delay_msec" cls sig => cls -> sig
+delay_msec = runMethod @"delay_msec"
+
+delay_usec :: Method "delay_usec" cls sig => cls -> sig
+delay_usec = runMethod @"delay_usec"
+
+delete_port_mapping ::
+                      Method "delete_port_mapping" cls sig => cls -> sig
+delete_port_mapping = runMethod @"delete_port_mapping"
+
+deselect :: Method "deselect" cls sig => cls -> sig
+deselect = runMethod @"deselect"
+
+deselect_items :: Method "deselect_items" cls sig => cls -> sig
+deselect_items = runMethod @"deselect_items"
+
+detect_alpha :: Method "detect_alpha" cls sig => cls -> sig
+detect_alpha = runMethod @"detect_alpha"
+
+dir_exists :: Method "dir_exists" cls sig => cls -> sig
+dir_exists = runMethod @"dir_exists"
+
+directional_light_create ::
+                           Method "directional_light_create" cls sig => cls -> sig
+directional_light_create = runMethod @"directional_light_create"
+
+disconnect :: Method "disconnect" cls sig => cls -> sig
+disconnect = runMethod @"disconnect"
+
+disconnect_from_host ::
+                       Method "disconnect_from_host" cls sig => cls -> sig
+disconnect_from_host = runMethod @"disconnect_from_host"
+
+disconnect_from_stream ::
+                         Method "disconnect_from_stream" cls sig => cls -> sig
+disconnect_from_stream = runMethod @"disconnect_from_stream"
+
+disconnect_node :: Method "disconnect_node" cls sig => cls -> sig
+disconnect_node = runMethod @"disconnect_node"
+
+disconnect_nodes :: Method "disconnect_nodes" cls sig => cls -> sig
+disconnect_nodes = runMethod @"disconnect_nodes"
+
+disconnect_peer :: Method "disconnect_peer" cls sig => cls -> sig
+disconnect_peer = runMethod @"disconnect_peer"
+
+disconnect_points ::
+                    Method "disconnect_points" cls sig => cls -> sig
+disconnect_points = runMethod @"disconnect_points"
+
+discover :: Method "discover" cls sig => cls -> sig
+discover = runMethod @"discover"
+
+draw :: Method "draw" cls sig => cls -> sig
+draw = runMethod @"draw"
+
+draw_char :: Method "draw_char" cls sig => cls -> sig
+draw_char = runMethod @"draw_char"
+
+draw_circle :: Method "draw_circle" cls sig => cls -> sig
+draw_circle = runMethod @"draw_circle"
+
+draw_colored_polygon ::
+                       Method "draw_colored_polygon" cls sig => cls -> sig
+draw_colored_polygon = runMethod @"draw_colored_polygon"
+
+draw_line :: Method "draw_line" cls sig => cls -> sig
+draw_line = runMethod @"draw_line"
+
+draw_mesh :: Method "draw_mesh" cls sig => cls -> sig
+draw_mesh = runMethod @"draw_mesh"
+
+draw_multiline :: Method "draw_multiline" cls sig => cls -> sig
+draw_multiline = runMethod @"draw_multiline"
+
+draw_multiline_colors ::
+                        Method "draw_multiline_colors" cls sig => cls -> sig
+draw_multiline_colors = runMethod @"draw_multiline_colors"
+
+draw_multimesh :: Method "draw_multimesh" cls sig => cls -> sig
+draw_multimesh = runMethod @"draw_multimesh"
+
+draw_polygon :: Method "draw_polygon" cls sig => cls -> sig
+draw_polygon = runMethod @"draw_polygon"
+
+draw_polyline :: Method "draw_polyline" cls sig => cls -> sig
+draw_polyline = runMethod @"draw_polyline"
+
+draw_polyline_colors ::
+                       Method "draw_polyline_colors" cls sig => cls -> sig
+draw_polyline_colors = runMethod @"draw_polyline_colors"
+
+draw_primitive :: Method "draw_primitive" cls sig => cls -> sig
+draw_primitive = runMethod @"draw_primitive"
+
+draw_rect :: Method "draw_rect" cls sig => cls -> sig
+draw_rect = runMethod @"draw_rect"
+
+draw_rect_region :: Method "draw_rect_region" cls sig => cls -> sig
+draw_rect_region = runMethod @"draw_rect_region"
+
+draw_set_transform ::
+                     Method "draw_set_transform" cls sig => cls -> sig
+draw_set_transform = runMethod @"draw_set_transform"
+
+draw_set_transform_matrix ::
+                            Method "draw_set_transform_matrix" cls sig => cls -> sig
+draw_set_transform_matrix = runMethod @"draw_set_transform_matrix"
+
+draw_string :: Method "draw_string" cls sig => cls -> sig
+draw_string = runMethod @"draw_string"
+
+draw_style_box :: Method "draw_style_box" cls sig => cls -> sig
+draw_style_box = runMethod @"draw_style_box"
+
+draw_texture :: Method "draw_texture" cls sig => cls -> sig
+draw_texture = runMethod @"draw_texture"
+
+draw_texture_rect ::
+                    Method "draw_texture_rect" cls sig => cls -> sig
+draw_texture_rect = runMethod @"draw_texture_rect"
+
+draw_texture_rect_region ::
+                           Method "draw_texture_rect_region" cls sig => cls -> sig
+draw_texture_rect_region = runMethod @"draw_texture_rect_region"
+
+drop_data :: Method "drop_data" cls sig => cls -> sig
+drop_data = runMethod @"drop_data"
+
+drop_data_fw :: Method "drop_data_fw" cls sig => cls -> sig
+drop_data_fw = runMethod @"drop_data_fw"
+
+dump_memory_to_file ::
+                      Method "dump_memory_to_file" cls sig => cls -> sig
+dump_memory_to_file = runMethod @"dump_memory_to_file"
+
+dump_resources_to_file ::
+                         Method "dump_resources_to_file" cls sig => cls -> sig
+dump_resources_to_file = runMethod @"dump_resources_to_file"
+
+duplicate :: Method "duplicate" cls sig => cls -> sig
+duplicate = runMethod @"duplicate"
+
+edit :: Method "edit" cls sig => cls -> sig
+edit = runMethod @"edit"
+
+edit_resource :: Method "edit_resource" cls sig => cls -> sig
+edit_resource = runMethod @"edit_resource"
+
+emit_signal :: Method "emit_signal" cls sig => cls -> sig
+emit_signal = runMethod @"emit_signal"
+
+end :: Method "end" cls sig => cls -> sig
+end = runMethod @"end"
+
+ensure_current_is_visible ::
+                            Method "ensure_current_is_visible" cls sig => cls -> sig
+ensure_current_is_visible = runMethod @"ensure_current_is_visible"
+
+ensure_cursor_is_visible ::
+                           Method "ensure_cursor_is_visible" cls sig => cls -> sig
+ensure_cursor_is_visible = runMethod @"ensure_cursor_is_visible"
+
+ensure_tab_visible ::
+                     Method "ensure_tab_visible" cls sig => cls -> sig
+ensure_tab_visible = runMethod @"ensure_tab_visible"
+
+environment_create ::
+                     Method "environment_create" cls sig => cls -> sig
+environment_create = runMethod @"environment_create"
+
+environment_set_adjustment ::
+                             Method "environment_set_adjustment" cls sig => cls -> sig
+environment_set_adjustment
+  = runMethod @"environment_set_adjustment"
+
+environment_set_ambient_light ::
+                                Method "environment_set_ambient_light" cls sig => cls -> sig
+environment_set_ambient_light
+  = runMethod @"environment_set_ambient_light"
+
+environment_set_background ::
+                             Method "environment_set_background" cls sig => cls -> sig
+environment_set_background
+  = runMethod @"environment_set_background"
+
+environment_set_bg_color ::
+                           Method "environment_set_bg_color" cls sig => cls -> sig
+environment_set_bg_color = runMethod @"environment_set_bg_color"
+
+environment_set_bg_energy ::
+                            Method "environment_set_bg_energy" cls sig => cls -> sig
+environment_set_bg_energy = runMethod @"environment_set_bg_energy"
+
+environment_set_canvas_max_layer ::
+                                   Method "environment_set_canvas_max_layer" cls sig => cls -> sig
+environment_set_canvas_max_layer
+  = runMethod @"environment_set_canvas_max_layer"
+
+environment_set_dof_blur_far ::
+                               Method "environment_set_dof_blur_far" cls sig => cls -> sig
+environment_set_dof_blur_far
+  = runMethod @"environment_set_dof_blur_far"
+
+environment_set_dof_blur_near ::
+                                Method "environment_set_dof_blur_near" cls sig => cls -> sig
+environment_set_dof_blur_near
+  = runMethod @"environment_set_dof_blur_near"
+
+environment_set_fog ::
+                      Method "environment_set_fog" cls sig => cls -> sig
+environment_set_fog = runMethod @"environment_set_fog"
+
+environment_set_fog_depth ::
+                            Method "environment_set_fog_depth" cls sig => cls -> sig
+environment_set_fog_depth = runMethod @"environment_set_fog_depth"
+
+environment_set_fog_height ::
+                             Method "environment_set_fog_height" cls sig => cls -> sig
+environment_set_fog_height
+  = runMethod @"environment_set_fog_height"
+
+environment_set_glow ::
+                       Method "environment_set_glow" cls sig => cls -> sig
+environment_set_glow = runMethod @"environment_set_glow"
+
+environment_set_sky ::
+                      Method "environment_set_sky" cls sig => cls -> sig
+environment_set_sky = runMethod @"environment_set_sky"
+
+environment_set_sky_custom_fov ::
+                                 Method "environment_set_sky_custom_fov" cls sig => cls -> sig
+environment_set_sky_custom_fov
+  = runMethod @"environment_set_sky_custom_fov"
+
+environment_set_ssao ::
+                       Method "environment_set_ssao" cls sig => cls -> sig
+environment_set_ssao = runMethod @"environment_set_ssao"
+
+environment_set_ssr ::
+                      Method "environment_set_ssr" cls sig => cls -> sig
+environment_set_ssr = runMethod @"environment_set_ssr"
+
+environment_set_tonemap ::
+                          Method "environment_set_tonemap" cls sig => cls -> sig
+environment_set_tonemap = runMethod @"environment_set_tonemap"
+
+eof_reached :: Method "eof_reached" cls sig => cls -> sig
+eof_reached = runMethod @"eof_reached"
+
+erase :: Method "erase" cls sig => cls -> sig
+erase = runMethod @"erase"
+
+erase_action :: Method "erase_action" cls sig => cls -> sig
+erase_action = runMethod @"erase_action"
+
+erase_bone :: Method "erase_bone" cls sig => cls -> sig
+erase_bone = runMethod @"erase_bone"
+
+erase_button :: Method "erase_button" cls sig => cls -> sig
+erase_button = runMethod @"erase_button"
+
+erase_message :: Method "erase_message" cls sig => cls -> sig
+erase_message = runMethod @"erase_message"
+
+erase_resolve_item ::
+                     Method "erase_resolve_item" cls sig => cls -> sig
+erase_resolve_item = runMethod @"erase_resolve_item"
+
+erase_section :: Method "erase_section" cls sig => cls -> sig
+erase_section = runMethod @"erase_section"
+
+eval :: Method "eval" cls sig => cls -> sig
+eval = runMethod @"eval"
+
+event_is_action :: Method "event_is_action" cls sig => cls -> sig
+event_is_action = runMethod @"event_is_action"
+
+execute :: Method "execute" cls sig => cls -> sig
+execute = runMethod @"execute"
+
+exists :: Method "exists" cls sig => cls -> sig
+exists = runMethod @"exists"
+
+expand_x2_hq2x :: Method "expand_x2_hq2x" cls sig => cls -> sig
+expand_x2_hq2x = runMethod @"expand_x2_hq2x"
+
+file_exists :: Method "file_exists" cls sig => cls -> sig
+file_exists = runMethod @"file_exists"
+
+fill :: Method "fill" cls sig => cls -> sig
+fill = runMethod @"fill"
+
+find_animation :: Method "find_animation" cls sig => cls -> sig
+find_animation = runMethod @"find_animation"
+
+find_bone :: Method "find_bone" cls sig => cls -> sig
+find_bone = runMethod @"find_bone"
+
+find_dir_index :: Method "find_dir_index" cls sig => cls -> sig
+find_dir_index = runMethod @"find_dir_index"
+
+find_file_index :: Method "find_file_index" cls sig => cls -> sig
+find_file_index = runMethod @"find_file_index"
+
+find_interface :: Method "find_interface" cls sig => cls -> sig
+find_interface = runMethod @"find_interface"
+
+find_item_by_name ::
+                    Method "find_item_by_name" cls sig => cls -> sig
+find_item_by_name = runMethod @"find_item_by_name"
+
+find_node :: Method "find_node" cls sig => cls -> sig
+find_node = runMethod @"find_node"
+
+find_parent :: Method "find_parent" cls sig => cls -> sig
+find_parent = runMethod @"find_parent"
+
+find_path :: Method "find_path" cls sig => cls -> sig
+find_path = runMethod @"find_path"
+
+find_scancode_from_string ::
+                            Method "find_scancode_from_string" cls sig => cls -> sig
+find_scancode_from_string = runMethod @"find_scancode_from_string"
+
+find_tile_by_name ::
+                    Method "find_tile_by_name" cls sig => cls -> sig
+find_tile_by_name = runMethod @"find_tile_by_name"
+
+find_track :: Method "find_track" cls sig => cls -> sig
+find_track = runMethod @"find_track"
+
+find_world :: Method "find_world" cls sig => cls -> sig
+find_world = runMethod @"find_world"
+
+find_world_2d :: Method "find_world_2d" cls sig => cls -> sig
+find_world_2d = runMethod @"find_world_2d"
+
+finish :: Method "finish" cls sig => cls -> sig
+finish = runMethod @"finish"
+
+fit_child_in_rect ::
+                    Method "fit_child_in_rect" cls sig => cls -> sig
+fit_child_in_rect = runMethod @"fit_child_in_rect"
+
+fix_alpha_edges :: Method "fix_alpha_edges" cls sig => cls -> sig
+fix_alpha_edges = runMethod @"fix_alpha_edges"
+
+fix_invalid_tiles ::
+                    Method "fix_invalid_tiles" cls sig => cls -> sig
+fix_invalid_tiles = runMethod @"fix_invalid_tiles"
+
+flip_x :: Method "flip_x" cls sig => cls -> sig
+flip_x = runMethod @"flip_x"
+
+flip_y :: Method "flip_y" cls sig => cls -> sig
+flip_y = runMethod @"flip_y"
+
+flush :: Method "flush" cls sig => cls -> sig
+flush = runMethod @"flush"
+
+fold_all_lines :: Method "fold_all_lines" cls sig => cls -> sig
+fold_all_lines = runMethod @"fold_all_lines"
+
+fold_line :: Method "fold_line" cls sig => cls -> sig
+fold_line = runMethod @"fold_line"
+
+follow_method :: Method "follow_method" cls sig => cls -> sig
+follow_method = runMethod @"follow_method"
+
+follow_property :: Method "follow_property" cls sig => cls -> sig
+follow_property = runMethod @"follow_property"
+
+force_drag :: Method "force_drag" cls sig => cls -> sig
+force_drag = runMethod @"force_drag"
+
+force_draw :: Method "force_draw" cls sig => cls -> sig
+force_draw = runMethod @"force_draw"
+
+force_raycast_update ::
+                       Method "force_raycast_update" cls sig => cls -> sig
+force_raycast_update = runMethod @"force_raycast_update"
+
+force_sync :: Method "force_sync" cls sig => cls -> sig
+force_sync = runMethod @"force_sync"
+
+force_update_scroll ::
+                      Method "force_update_scroll" cls sig => cls -> sig
+force_update_scroll = runMethod @"force_update_scroll"
+
+force_update_transform ::
+                         Method "force_update_transform" cls sig => cls -> sig
+force_update_transform = runMethod @"force_update_transform"
+
+forward_canvas_draw_over_viewport ::
+                                    Method "forward_canvas_draw_over_viewport" cls sig => cls -> sig
+forward_canvas_draw_over_viewport
+  = runMethod @"forward_canvas_draw_over_viewport"
+
+forward_canvas_force_draw_over_viewport ::
+                                          Method "forward_canvas_force_draw_over_viewport" cls
+                                            sig =>
+                                          cls -> sig
+forward_canvas_force_draw_over_viewport
+  = runMethod @"forward_canvas_force_draw_over_viewport"
+
+forward_canvas_gui_input ::
+                           Method "forward_canvas_gui_input" cls sig => cls -> sig
+forward_canvas_gui_input = runMethod @"forward_canvas_gui_input"
+
+forward_spatial_gui_input ::
+                            Method "forward_spatial_gui_input" cls sig => cls -> sig
+forward_spatial_gui_input = runMethod @"forward_spatial_gui_input"
+
+free :: Method "free" cls sig => cls -> sig
+free = runMethod @"free"
+
+free_rid :: Method "free_rid" cls sig => cls -> sig
+free_rid = runMethod @"free_rid"
+
+generate :: Method "generate" cls sig => cls -> sig
+generate = runMethod @"generate"
+
+generate_bus_layout ::
+                      Method "generate_bus_layout" cls sig => cls -> sig
+generate_bus_layout = runMethod @"generate_bus_layout"
+
+generate_from_path ::
+                     Method "generate_from_path" cls sig => cls -> sig
+generate_from_path = runMethod @"generate_from_path"
+
+generate_mipmaps :: Method "generate_mipmaps" cls sig => cls -> sig
+generate_mipmaps = runMethod @"generate_mipmaps"
+
+generate_normals :: Method "generate_normals" cls sig => cls -> sig
+generate_normals = runMethod @"generate_normals"
+
+generate_tangents ::
+                    Method "generate_tangents" cls sig => cls -> sig
+generate_tangents = runMethod @"generate_tangents"
+
+generate_triangle_mesh ::
+                         Method "generate_triangle_mesh" cls sig => cls -> sig
+generate_triangle_mesh = runMethod @"generate_triangle_mesh"
+
+generic_6dof_joint_get_flag ::
+                              Method "generic_6dof_joint_get_flag" cls sig => cls -> sig
+generic_6dof_joint_get_flag
+  = runMethod @"generic_6dof_joint_get_flag"
+
+generic_6dof_joint_get_param ::
+                               Method "generic_6dof_joint_get_param" cls sig => cls -> sig
+generic_6dof_joint_get_param
+  = runMethod @"generic_6dof_joint_get_param"
+
+generic_6dof_joint_set_flag ::
+                              Method "generic_6dof_joint_set_flag" cls sig => cls -> sig
+generic_6dof_joint_set_flag
+  = runMethod @"generic_6dof_joint_set_flag"
+
+generic_6dof_joint_set_param ::
+                               Method "generic_6dof_joint_set_param" cls sig => cls -> sig
+generic_6dof_joint_set_param
+  = runMethod @"generic_6dof_joint_set_param"
+
+get :: Method "get" cls sig => cls -> sig
+get = runMethod @"get"
+
+get_16 :: Method "get_16" cls sig => cls -> sig
+get_16 = runMethod @"get_16"
+
+get_32 :: Method "get_32" cls sig => cls -> sig
+get_32 = runMethod @"get_32"
+
+get_64 :: Method "get_64" cls sig => cls -> sig
+get_64 = runMethod @"get_64"
+
+get_8 :: Method "get_8" cls sig => cls -> sig
+get_8 = runMethod @"get_8"
+
+get_a :: Method "get_a" cls sig => cls -> sig
+get_a = runMethod @"get_a"
+
+get_aa_size :: Method "get_aa_size" cls sig => cls -> sig
+get_aa_size = runMethod @"get_aa_size"
+
+get_aabb :: Method "get_aabb" cls sig => cls -> sig
+get_aabb = runMethod @"get_aabb"
+
+get_accelerometer ::
+                    Method "get_accelerometer" cls sig => cls -> sig
+get_accelerometer = runMethod @"get_accelerometer"
+
+get_access :: Method "get_access" cls sig => cls -> sig
+get_access = runMethod @"get_access"
+
+get_action :: Method "get_action" cls sig => cls -> sig
+get_action = runMethod @"get_action"
+
+get_action_list :: Method "get_action_list" cls sig => cls -> sig
+get_action_list = runMethod @"get_action_list"
+
+get_action_mode :: Method "get_action_mode" cls sig => cls -> sig
+get_action_mode = runMethod @"get_action_mode"
+
+get_action_name :: Method "get_action_name" cls sig => cls -> sig
+get_action_name = runMethod @"get_action_name"
+
+get_action_strength ::
+                      Method "get_action_strength" cls sig => cls -> sig
+get_action_strength = runMethod @"get_action_strength"
+
+get_actions :: Method "get_actions" cls sig => cls -> sig
+get_actions = runMethod @"get_actions"
+
+get_adjustment_brightness ::
+                            Method "get_adjustment_brightness" cls sig => cls -> sig
+get_adjustment_brightness = runMethod @"get_adjustment_brightness"
+
+get_adjustment_color_correction ::
+                                  Method "get_adjustment_color_correction" cls sig => cls -> sig
+get_adjustment_color_correction
+  = runMethod @"get_adjustment_color_correction"
+
+get_adjustment_contrast ::
+                          Method "get_adjustment_contrast" cls sig => cls -> sig
+get_adjustment_contrast = runMethod @"get_adjustment_contrast"
+
+get_adjustment_saturation ::
+                            Method "get_adjustment_saturation" cls sig => cls -> sig
+get_adjustment_saturation = runMethod @"get_adjustment_saturation"
+
+get_advance_condition ::
+                        Method "get_advance_condition" cls sig => cls -> sig
+get_advance_condition = runMethod @"get_advance_condition"
+
+get_agent_height :: Method "get_agent_height" cls sig => cls -> sig
+get_agent_height = runMethod @"get_agent_height"
+
+get_agent_max_climb ::
+                      Method "get_agent_max_climb" cls sig => cls -> sig
+get_agent_max_climb = runMethod @"get_agent_max_climb"
+
+get_agent_max_slope ::
+                      Method "get_agent_max_slope" cls sig => cls -> sig
+get_agent_max_slope = runMethod @"get_agent_max_slope"
+
+get_agent_radius :: Method "get_agent_radius" cls sig => cls -> sig
+get_agent_radius = runMethod @"get_agent_radius"
+
+get_albedo :: Method "get_albedo" cls sig => cls -> sig
+get_albedo = runMethod @"get_albedo"
+
+get_align :: Method "get_align" cls sig => cls -> sig
+get_align = runMethod @"get_align"
+
+get_alignment :: Method "get_alignment" cls sig => cls -> sig
+get_alignment = runMethod @"get_alignment"
+
+get_allow_reselect ::
+                     Method "get_allow_reselect" cls sig => cls -> sig
+get_allow_reselect = runMethod @"get_allow_reselect"
+
+get_allow_rmb_select ::
+                       Method "get_allow_rmb_select" cls sig => cls -> sig
+get_allow_rmb_select = runMethod @"get_allow_rmb_select"
+
+get_alpha_cut_mode ::
+                     Method "get_alpha_cut_mode" cls sig => cls -> sig
+get_alpha_cut_mode = runMethod @"get_alpha_cut_mode"
+
+get_alpha_scissor_threshold ::
+                              Method "get_alpha_scissor_threshold" cls sig => cls -> sig
+get_alpha_scissor_threshold
+  = runMethod @"get_alpha_scissor_threshold"
+
+get_alt :: Method "get_alt" cls sig => cls -> sig
+get_alt = runMethod @"get_alt"
+
+get_ambient_light_color ::
+                          Method "get_ambient_light_color" cls sig => cls -> sig
+get_ambient_light_color = runMethod @"get_ambient_light_color"
+
+get_ambient_light_energy ::
+                           Method "get_ambient_light_energy" cls sig => cls -> sig
+get_ambient_light_energy = runMethod @"get_ambient_light_energy"
+
+get_ambient_light_sky_contribution ::
+                                     Method "get_ambient_light_sky_contribution" cls sig =>
+                                     cls -> sig
+get_ambient_light_sky_contribution
+  = runMethod @"get_ambient_light_sky_contribution"
+
+get_amount :: Method "get_amount" cls sig => cls -> sig
+get_amount = runMethod @"get_amount"
+
+get_anchor :: Method "get_anchor" cls sig => cls -> sig
+get_anchor = runMethod @"get_anchor"
+
+get_anchor_detection_is_enabled ::
+                                  Method "get_anchor_detection_is_enabled" cls sig => cls -> sig
+get_anchor_detection_is_enabled
+  = runMethod @"get_anchor_detection_is_enabled"
+
+get_anchor_id :: Method "get_anchor_id" cls sig => cls -> sig
+get_anchor_id = runMethod @"get_anchor_id"
+
+get_anchor_mode :: Method "get_anchor_mode" cls sig => cls -> sig
+get_anchor_mode = runMethod @"get_anchor_mode"
+
+get_anchor_name :: Method "get_anchor_name" cls sig => cls -> sig
+get_anchor_name = runMethod @"get_anchor_name"
+
+get_angle_to :: Method "get_angle_to" cls sig => cls -> sig
+get_angle_to = runMethod @"get_angle_to"
+
+get_angular_damp :: Method "get_angular_damp" cls sig => cls -> sig
+get_angular_damp = runMethod @"get_angular_damp"
+
+get_angular_velocity ::
+                       Method "get_angular_velocity" cls sig => cls -> sig
+get_angular_velocity = runMethod @"get_angular_velocity"
+
+get_animation :: Method "get_animation" cls sig => cls -> sig
+get_animation = runMethod @"get_animation"
+
+get_animation_list ::
+                     Method "get_animation_list" cls sig => cls -> sig
+get_animation_list = runMethod @"get_animation_list"
+
+get_animation_loop ::
+                     Method "get_animation_loop" cls sig => cls -> sig
+get_animation_loop = runMethod @"get_animation_loop"
+
+get_animation_names ::
+                      Method "get_animation_names" cls sig => cls -> sig
+get_animation_names = runMethod @"get_animation_names"
+
+get_animation_path ::
+                     Method "get_animation_path" cls sig => cls -> sig
+get_animation_path = runMethod @"get_animation_path"
+
+get_animation_player ::
+                       Method "get_animation_player" cls sig => cls -> sig
+get_animation_player = runMethod @"get_animation_player"
+
+get_animation_process_mode ::
+                             Method "get_animation_process_mode" cls sig => cls -> sig
+get_animation_process_mode
+  = runMethod @"get_animation_process_mode"
+
+get_animation_speed ::
+                      Method "get_animation_speed" cls sig => cls -> sig
+get_animation_speed = runMethod @"get_animation_speed"
+
+get_anisotropy :: Method "get_anisotropy" cls sig => cls -> sig
+get_anisotropy = runMethod @"get_anisotropy"
+
+get_antialiased :: Method "get_antialiased" cls sig => cls -> sig
+get_antialiased = runMethod @"get_antialiased"
+
+get_ao_light_affect ::
+                      Method "get_ao_light_affect" cls sig => cls -> sig
+get_ao_light_affect = runMethod @"get_ao_light_affect"
+
+get_ao_texture_channel ::
+                         Method "get_ao_texture_channel" cls sig => cls -> sig
+get_ao_texture_channel = runMethod @"get_ao_texture_channel"
+
+get_applied_force ::
+                    Method "get_applied_force" cls sig => cls -> sig
+get_applied_force = runMethod @"get_applied_force"
+
+get_applied_torque ::
+                     Method "get_applied_torque" cls sig => cls -> sig
+get_applied_torque = runMethod @"get_applied_torque"
+
+get_areaAngular_stiffness ::
+                            Method "get_areaAngular_stiffness" cls sig => cls -> sig
+get_areaAngular_stiffness = runMethod @"get_areaAngular_stiffness"
+
+get_area_mask :: Method "get_area_mask" cls sig => cls -> sig
+get_area_mask = runMethod @"get_area_mask"
+
+get_as_byte_code :: Method "get_as_byte_code" cls sig => cls -> sig
+get_as_byte_code = runMethod @"get_as_byte_code"
+
+get_as_ratio :: Method "get_as_ratio" cls sig => cls -> sig
+get_as_ratio = runMethod @"get_as_ratio"
+
+get_as_text :: Method "get_as_text" cls sig => cls -> sig
+get_as_text = runMethod @"get_as_text"
+
+get_ascent :: Method "get_ascent" cls sig => cls -> sig
+get_ascent = runMethod @"get_ascent"
+
+get_assign_op :: Method "get_assign_op" cls sig => cls -> sig
+get_assign_op = runMethod @"get_assign_op"
+
+get_assigned_animation ::
+                         Method "get_assigned_animation" cls sig => cls -> sig
+get_assigned_animation = runMethod @"get_assigned_animation"
+
+get_atlas :: Method "get_atlas" cls sig => cls -> sig
+get_atlas = runMethod @"get_atlas"
+
+get_attack_us :: Method "get_attack_us" cls sig => cls -> sig
+get_attack_us = runMethod @"get_attack_us"
+
+get_attenuation :: Method "get_attenuation" cls sig => cls -> sig
+get_attenuation = runMethod @"get_attenuation"
+
+get_attenuation_filter_cutoff_hz ::
+                                   Method "get_attenuation_filter_cutoff_hz" cls sig => cls -> sig
+get_attenuation_filter_cutoff_hz
+  = runMethod @"get_attenuation_filter_cutoff_hz"
+
+get_attenuation_filter_db ::
+                            Method "get_attenuation_filter_db" cls sig => cls -> sig
+get_attenuation_filter_db = runMethod @"get_attenuation_filter_db"
+
+get_attenuation_model ::
+                        Method "get_attenuation_model" cls sig => cls -> sig
+get_attenuation_model = runMethod @"get_attenuation_model"
+
+get_attribute_count ::
+                      Method "get_attribute_count" cls sig => cls -> sig
+get_attribute_count = runMethod @"get_attribute_count"
+
+get_attribute_name ::
+                     Method "get_attribute_name" cls sig => cls -> sig
+get_attribute_name = runMethod @"get_attribute_name"
+
+get_attribute_value ::
+                      Method "get_attribute_value" cls sig => cls -> sig
+get_attribute_value = runMethod @"get_attribute_value"
+
+get_audio_bus :: Method "get_audio_bus" cls sig => cls -> sig
+get_audio_bus = runMethod @"get_audio_bus"
+
+get_audio_bus_name ::
+                     Method "get_audio_bus_name" cls sig => cls -> sig
+get_audio_bus_name = runMethod @"get_audio_bus_name"
+
+get_audio_driver_count ::
+                         Method "get_audio_driver_count" cls sig => cls -> sig
+get_audio_driver_count = runMethod @"get_audio_driver_count"
+
+get_audio_driver_name ::
+                        Method "get_audio_driver_name" cls sig => cls -> sig
+get_audio_driver_name = runMethod @"get_audio_driver_name"
+
+get_audio_stream :: Method "get_audio_stream" cls sig => cls -> sig
+get_audio_stream = runMethod @"get_audio_stream"
+
+get_audio_track :: Method "get_audio_track" cls sig => cls -> sig
+get_audio_track = runMethod @"get_audio_track"
+
+get_author_info :: Method "get_author_info" cls sig => cls -> sig
+get_author_info = runMethod @"get_author_info"
+
+get_auto_triangles ::
+                     Method "get_auto_triangles" cls sig => cls -> sig
+get_auto_triangles = runMethod @"get_auto_triangles"
+
+get_autoplay :: Method "get_autoplay" cls sig => cls -> sig
+get_autoplay = runMethod @"get_autoplay"
+
+get_autorestart_delay ::
+                        Method "get_autorestart_delay" cls sig => cls -> sig
+get_autorestart_delay = runMethod @"get_autorestart_delay"
+
+get_autorestart_random_delay ::
+                               Method "get_autorestart_random_delay" cls sig => cls -> sig
+get_autorestart_random_delay
+  = runMethod @"get_autorestart_random_delay"
+
+get_available_bytes ::
+                      Method "get_available_bytes" cls sig => cls -> sig
+get_available_bytes = runMethod @"get_available_bytes"
+
+get_available_packet_count ::
+                             Method "get_available_packet_count" cls sig => cls -> sig
+get_available_packet_count
+  = runMethod @"get_available_packet_count"
+
+get_available_point_id ::
+                         Method "get_available_point_id" cls sig => cls -> sig
+get_available_point_id = runMethod @"get_available_point_id"
+
+get_axis :: Method "get_axis" cls sig => cls -> sig
+get_axis = runMethod @"get_axis"
+
+get_axis_lock :: Method "get_axis_lock" cls sig => cls -> sig
+get_axis_lock = runMethod @"get_axis_lock"
+
+get_axis_value :: Method "get_axis_value" cls sig => cls -> sig
+get_axis_value = runMethod @"get_axis_value"
+
+get_b :: Method "get_b" cls sig => cls -> sig
+get_b = runMethod @"get_b"
+
+get_background :: Method "get_background" cls sig => cls -> sig
+get_background = runMethod @"get_background"
+
+get_bake_cell_size ::
+                     Method "get_bake_cell_size" cls sig => cls -> sig
+get_bake_cell_size = runMethod @"get_bake_cell_size"
+
+get_bake_interval ::
+                    Method "get_bake_interval" cls sig => cls -> sig
+get_bake_interval = runMethod @"get_bake_interval"
+
+get_bake_mesh_instance ::
+                         Method "get_bake_mesh_instance" cls sig => cls -> sig
+get_bake_mesh_instance = runMethod @"get_bake_mesh_instance"
+
+get_bake_meshes :: Method "get_bake_meshes" cls sig => cls -> sig
+get_bake_meshes = runMethod @"get_bake_meshes"
+
+get_bake_mode :: Method "get_bake_mode" cls sig => cls -> sig
+get_bake_mode = runMethod @"get_bake_mode"
+
+get_bake_quality :: Method "get_bake_quality" cls sig => cls -> sig
+get_bake_quality = runMethod @"get_bake_quality"
+
+get_bake_resolution ::
+                      Method "get_bake_resolution" cls sig => cls -> sig
+get_bake_resolution = runMethod @"get_bake_resolution"
+
+get_baked_length :: Method "get_baked_length" cls sig => cls -> sig
+get_baked_length = runMethod @"get_baked_length"
+
+get_baked_points :: Method "get_baked_points" cls sig => cls -> sig
+get_baked_points = runMethod @"get_baked_points"
+
+get_baked_tilts :: Method "get_baked_tilts" cls sig => cls -> sig
+get_baked_tilts = runMethod @"get_baked_tilts"
+
+get_baked_up_vectors ::
+                       Method "get_baked_up_vectors" cls sig => cls -> sig
+get_baked_up_vectors = runMethod @"get_baked_up_vectors"
+
+get_band_count :: Method "get_band_count" cls sig => cls -> sig
+get_band_count = runMethod @"get_band_count"
+
+get_band_gain_db :: Method "get_band_gain_db" cls sig => cls -> sig
+get_band_gain_db = runMethod @"get_band_gain_db"
+
+get_base :: Method "get_base" cls sig => cls -> sig
+get_base = runMethod @"get_base"
+
+get_base_control :: Method "get_base_control" cls sig => cls -> sig
+get_base_control = runMethod @"get_base_control"
+
+get_base_path :: Method "get_base_path" cls sig => cls -> sig
+get_base_path = runMethod @"get_base_path"
+
+get_base_script :: Method "get_base_script" cls sig => cls -> sig
+get_base_script = runMethod @"get_base_script"
+
+get_base_type :: Method "get_base_type" cls sig => cls -> sig
+get_base_type = runMethod @"get_base_type"
+
+get_basic_type :: Method "get_basic_type" cls sig => cls -> sig
+get_basic_type = runMethod @"get_basic_type"
+
+get_basic_type_constant ::
+                          Method "get_basic_type_constant" cls sig => cls -> sig
+get_basic_type_constant = runMethod @"get_basic_type_constant"
+
+get_bbcode :: Method "get_bbcode" cls sig => cls -> sig
+get_bbcode = runMethod @"get_bbcode"
+
+get_begin :: Method "get_begin" cls sig => cls -> sig
+get_begin = runMethod @"get_begin"
+
+get_begin_cap_mode ::
+                     Method "get_begin_cap_mode" cls sig => cls -> sig
+get_begin_cap_mode = runMethod @"get_begin_cap_mode"
+
+get_bg_color :: Method "get_bg_color" cls sig => cls -> sig
+get_bg_color = runMethod @"get_bg_color"
+
+get_bg_energy :: Method "get_bg_energy" cls sig => cls -> sig
+get_bg_energy = runMethod @"get_bg_energy"
+
+get_bias :: Method "get_bias" cls sig => cls -> sig
+get_bias = runMethod @"get_bias"
+
+get_billboard_mode ::
+                     Method "get_billboard_mode" cls sig => cls -> sig
+get_billboard_mode = runMethod @"get_billboard_mode"
+
+get_bit :: Method "get_bit" cls sig => cls -> sig
+get_bit = runMethod @"get_bit"
+
+get_bitmask :: Method "get_bitmask" cls sig => cls -> sig
+get_bitmask = runMethod @"get_bitmask"
+
+get_blend_mode :: Method "get_blend_mode" cls sig => cls -> sig
+get_blend_mode = runMethod @"get_blend_mode"
+
+get_blend_point_count ::
+                        Method "get_blend_point_count" cls sig => cls -> sig
+get_blend_point_count = runMethod @"get_blend_point_count"
+
+get_blend_point_node ::
+                       Method "get_blend_point_node" cls sig => cls -> sig
+get_blend_point_node = runMethod @"get_blend_point_node"
+
+get_blend_point_position ::
+                           Method "get_blend_point_position" cls sig => cls -> sig
+get_blend_point_position = runMethod @"get_blend_point_position"
+
+get_blend_shape_count ::
+                        Method "get_blend_shape_count" cls sig => cls -> sig
+get_blend_shape_count = runMethod @"get_blend_shape_count"
+
+get_blend_shape_mode ::
+                       Method "get_blend_shape_mode" cls sig => cls -> sig
+get_blend_shape_mode = runMethod @"get_blend_shape_mode"
+
+get_blend_shape_name ::
+                       Method "get_blend_shape_name" cls sig => cls -> sig
+get_blend_shape_name = runMethod @"get_blend_shape_name"
+
+get_blend_time :: Method "get_blend_time" cls sig => cls -> sig
+get_blend_time = runMethod @"get_blend_time"
+
+get_body_offset :: Method "get_body_offset" cls sig => cls -> sig
+get_body_offset = runMethod @"get_body_offset"
+
+get_body_size :: Method "get_body_size" cls sig => cls -> sig
+get_body_size = runMethod @"get_body_size"
+
+get_body_size_limit ::
+                      Method "get_body_size_limit" cls sig => cls -> sig
+get_body_size_limit = runMethod @"get_body_size_limit"
+
+get_bone :: Method "get_bone" cls sig => cls -> sig
+get_bone = runMethod @"get_bone"
+
+get_bone_count :: Method "get_bone_count" cls sig => cls -> sig
+get_bone_count = runMethod @"get_bone_count"
+
+get_bone_custom_pose ::
+                       Method "get_bone_custom_pose" cls sig => cls -> sig
+get_bone_custom_pose = runMethod @"get_bone_custom_pose"
+
+get_bone_global_pose ::
+                       Method "get_bone_global_pose" cls sig => cls -> sig
+get_bone_global_pose = runMethod @"get_bone_global_pose"
+
+get_bone_id :: Method "get_bone_id" cls sig => cls -> sig
+get_bone_id = runMethod @"get_bone_id"
+
+get_bone_name :: Method "get_bone_name" cls sig => cls -> sig
+get_bone_name = runMethod @"get_bone_name"
+
+get_bone_parent :: Method "get_bone_parent" cls sig => cls -> sig
+get_bone_parent = runMethod @"get_bone_parent"
+
+get_bone_path :: Method "get_bone_path" cls sig => cls -> sig
+get_bone_path = runMethod @"get_bone_path"
+
+get_bone_pose :: Method "get_bone_pose" cls sig => cls -> sig
+get_bone_pose = runMethod @"get_bone_pose"
+
+get_bone_rest :: Method "get_bone_rest" cls sig => cls -> sig
+get_bone_rest = runMethod @"get_bone_rest"
+
+get_bone_transform ::
+                     Method "get_bone_transform" cls sig => cls -> sig
+get_bone_transform = runMethod @"get_bone_transform"
+
+get_bone_weights :: Method "get_bone_weights" cls sig => cls -> sig
+get_bone_weights = runMethod @"get_bone_weights"
+
+get_border_blend :: Method "get_border_blend" cls sig => cls -> sig
+get_border_blend = runMethod @"get_border_blend"
+
+get_border_color :: Method "get_border_color" cls sig => cls -> sig
+get_border_color = runMethod @"get_border_color"
+
+get_border_width :: Method "get_border_width" cls sig => cls -> sig
+get_border_width = runMethod @"get_border_width"
+
+get_border_width_min ::
+                       Method "get_border_width_min" cls sig => cls -> sig
+get_border_width_min = runMethod @"get_border_width_min"
+
+get_borderless_window ::
+                        Method "get_borderless_window" cls sig => cls -> sig
+get_borderless_window = runMethod @"get_borderless_window"
+
+get_bottom_radius ::
+                    Method "get_bottom_radius" cls sig => cls -> sig
+get_bottom_radius = runMethod @"get_bottom_radius"
+
+get_bounce :: Method "get_bounce" cls sig => cls -> sig
+get_bounce = runMethod @"get_bounce"
+
+get_bound_child_nodes_to_bone ::
+                                Method "get_bound_child_nodes_to_bone" cls sig => cls -> sig
+get_bound_child_nodes_to_bone
+  = runMethod @"get_bound_child_nodes_to_bone"
+
+get_bounds :: Method "get_bounds" cls sig => cls -> sig
+get_bounds = runMethod @"get_bounds"
+
+get_brake :: Method "get_brake" cls sig => cls -> sig
+get_brake = runMethod @"get_brake"
+
+get_breakpoints :: Method "get_breakpoints" cls sig => cls -> sig
+get_breakpoints = runMethod @"get_breakpoints"
+
+get_buffer :: Method "get_buffer" cls sig => cls -> sig
+get_buffer = runMethod @"get_buffer"
+
+get_buffering_msec ::
+                     Method "get_buffering_msec" cls sig => cls -> sig
+get_buffering_msec = runMethod @"get_buffering_msec"
+
+get_build_mode :: Method "get_build_mode" cls sig => cls -> sig
+get_build_mode = runMethod @"get_build_mode"
+
+get_bus :: Method "get_bus" cls sig => cls -> sig
+get_bus = runMethod @"get_bus"
+
+get_bus_count :: Method "get_bus_count" cls sig => cls -> sig
+get_bus_count = runMethod @"get_bus_count"
+
+get_bus_effect :: Method "get_bus_effect" cls sig => cls -> sig
+get_bus_effect = runMethod @"get_bus_effect"
+
+get_bus_effect_count ::
+                       Method "get_bus_effect_count" cls sig => cls -> sig
+get_bus_effect_count = runMethod @"get_bus_effect_count"
+
+get_bus_index :: Method "get_bus_index" cls sig => cls -> sig
+get_bus_index = runMethod @"get_bus_index"
+
+get_bus_name :: Method "get_bus_name" cls sig => cls -> sig
+get_bus_name = runMethod @"get_bus_name"
+
+get_bus_peak_volume_left_db ::
+                              Method "get_bus_peak_volume_left_db" cls sig => cls -> sig
+get_bus_peak_volume_left_db
+  = runMethod @"get_bus_peak_volume_left_db"
+
+get_bus_peak_volume_right_db ::
+                               Method "get_bus_peak_volume_right_db" cls sig => cls -> sig
+get_bus_peak_volume_right_db
+  = runMethod @"get_bus_peak_volume_right_db"
+
+get_bus_send :: Method "get_bus_send" cls sig => cls -> sig
+get_bus_send = runMethod @"get_bus_send"
+
+get_bus_volume_db ::
+                    Method "get_bus_volume_db" cls sig => cls -> sig
+get_bus_volume_db = runMethod @"get_bus_volume_db"
+
+get_button :: Method "get_button" cls sig => cls -> sig
+get_button = runMethod @"get_button"
+
+get_button_count :: Method "get_button_count" cls sig => cls -> sig
+get_button_count = runMethod @"get_button_count"
+
+get_button_group :: Method "get_button_group" cls sig => cls -> sig
+get_button_group = runMethod @"get_button_group"
+
+get_button_icon :: Method "get_button_icon" cls sig => cls -> sig
+get_button_icon = runMethod @"get_button_icon"
+
+get_button_index :: Method "get_button_index" cls sig => cls -> sig
+get_button_index = runMethod @"get_button_index"
+
+get_button_mask :: Method "get_button_mask" cls sig => cls -> sig
+get_button_mask = runMethod @"get_button_mask"
+
+get_call_mode :: Method "get_call_mode" cls sig => cls -> sig
+get_call_mode = runMethod @"get_call_mode"
+
+get_camera :: Method "get_camera" cls sig => cls -> sig
+get_camera = runMethod @"get_camera"
+
+get_camera_position ::
+                      Method "get_camera_position" cls sig => cls -> sig
+get_camera_position = runMethod @"get_camera_position"
+
+get_camera_screen_center ::
+                           Method "get_camera_screen_center" cls sig => cls -> sig
+get_camera_screen_center = runMethod @"get_camera_screen_center"
+
+get_camera_transform ::
+                       Method "get_camera_transform" cls sig => cls -> sig
+get_camera_transform = runMethod @"get_camera_transform"
+
+get_cancel :: Method "get_cancel" cls sig => cls -> sig
+get_cancel = runMethod @"get_cancel"
+
+get_canvas :: Method "get_canvas" cls sig => cls -> sig
+get_canvas = runMethod @"get_canvas"
+
+get_canvas_item :: Method "get_canvas_item" cls sig => cls -> sig
+get_canvas_item = runMethod @"get_canvas_item"
+
+get_canvas_max_layer ::
+                       Method "get_canvas_max_layer" cls sig => cls -> sig
+get_canvas_max_layer = runMethod @"get_canvas_max_layer"
+
+get_canvas_transform ::
+                       Method "get_canvas_transform" cls sig => cls -> sig
+get_canvas_transform = runMethod @"get_canvas_transform"
+
+get_capabilities :: Method "get_capabilities" cls sig => cls -> sig
+get_capabilities = runMethod @"get_capabilities"
+
+get_caption :: Method "get_caption" cls sig => cls -> sig
+get_caption = runMethod @"get_caption"
+
+get_capture_cell_size ::
+                        Method "get_capture_cell_size" cls sig => cls -> sig
+get_capture_cell_size = runMethod @"get_capture_cell_size"
+
+get_capture_input_on_drag ::
+                            Method "get_capture_input_on_drag" cls sig => cls -> sig
+get_capture_input_on_drag = runMethod @"get_capture_input_on_drag"
+
+get_cast_shadows_setting ::
+                           Method "get_cast_shadows_setting" cls sig => cls -> sig
+get_cast_shadows_setting = runMethod @"get_cast_shadows_setting"
+
+get_cast_to :: Method "get_cast_to" cls sig => cls -> sig
+get_cast_to = runMethod @"get_cast_to"
+
+get_ceiling_db :: Method "get_ceiling_db" cls sig => cls -> sig
+get_ceiling_db = runMethod @"get_ceiling_db"
+
+get_cell :: Method "get_cell" cls sig => cls -> sig
+get_cell = runMethod @"get_cell"
+
+get_cell_height :: Method "get_cell_height" cls sig => cls -> sig
+get_cell_height = runMethod @"get_cell_height"
+
+get_cell_item :: Method "get_cell_item" cls sig => cls -> sig
+get_cell_item = runMethod @"get_cell_item"
+
+get_cell_item_orientation ::
+                            Method "get_cell_item_orientation" cls sig => cls -> sig
+get_cell_item_orientation = runMethod @"get_cell_item_orientation"
+
+get_cell_mode :: Method "get_cell_mode" cls sig => cls -> sig
+get_cell_mode = runMethod @"get_cell_mode"
+
+get_cell_scale :: Method "get_cell_scale" cls sig => cls -> sig
+get_cell_scale = runMethod @"get_cell_scale"
+
+get_cell_size :: Method "get_cell_size" cls sig => cls -> sig
+get_cell_size = runMethod @"get_cell_size"
+
+get_cell_space_transform ::
+                           Method "get_cell_space_transform" cls sig => cls -> sig
+get_cell_space_transform = runMethod @"get_cell_space_transform"
+
+get_cell_subdiv :: Method "get_cell_subdiv" cls sig => cls -> sig
+get_cell_subdiv = runMethod @"get_cell_subdiv"
+
+get_cellv :: Method "get_cellv" cls sig => cls -> sig
+get_cellv = runMethod @"get_cellv"
+
+get_center_of_mass ::
+                     Method "get_center_of_mass" cls sig => cls -> sig
+get_center_of_mass = runMethod @"get_center_of_mass"
+
+get_center_size :: Method "get_center_size" cls sig => cls -> sig
+get_center_size = runMethod @"get_center_size"
+
+get_center_x :: Method "get_center_x" cls sig => cls -> sig
+get_center_x = runMethod @"get_center_x"
+
+get_center_y :: Method "get_center_y" cls sig => cls -> sig
+get_center_y = runMethod @"get_center_y"
+
+get_center_z :: Method "get_center_z" cls sig => cls -> sig
+get_center_z = runMethod @"get_center_z"
+
+get_channel_count ::
+                    Method "get_channel_count" cls sig => cls -> sig
+get_channel_count = runMethod @"get_channel_count"
+
+get_char_size :: Method "get_char_size" cls sig => cls -> sig
+get_char_size = runMethod @"get_char_size"
+
+get_child :: Method "get_child" cls sig => cls -> sig
+get_child = runMethod @"get_child"
+
+get_child_count :: Method "get_child_count" cls sig => cls -> sig
+get_child_count = runMethod @"get_child_count"
+
+get_children :: Method "get_children" cls sig => cls -> sig
+get_children = runMethod @"get_children"
+
+get_class :: Method "get_class" cls sig => cls -> sig
+get_class = runMethod @"get_class"
+
+get_class_constant ::
+                     Method "get_class_constant" cls sig => cls -> sig
+get_class_constant = runMethod @"get_class_constant"
+
+get_class_documentation ::
+                          Method "get_class_documentation" cls sig => cls -> sig
+get_class_documentation = runMethod @"get_class_documentation"
+
+get_class_list :: Method "get_class_list" cls sig => cls -> sig
+get_class_list = runMethod @"get_class_list"
+
+get_class_name :: Method "get_class_name" cls sig => cls -> sig
+get_class_name = runMethod @"get_class_name"
+
+get_clear_mode :: Method "get_clear_mode" cls sig => cls -> sig
+get_clear_mode = runMethod @"get_clear_mode"
+
+get_clearcoat :: Method "get_clearcoat" cls sig => cls -> sig
+get_clearcoat = runMethod @"get_clearcoat"
+
+get_clearcoat_gloss ::
+                      Method "get_clearcoat_gloss" cls sig => cls -> sig
+get_clearcoat_gloss = runMethod @"get_clearcoat_gloss"
+
+get_click_mask :: Method "get_click_mask" cls sig => cls -> sig
+get_click_mask = runMethod @"get_click_mask"
+
+get_clip_text :: Method "get_clip_text" cls sig => cls -> sig
+get_clip_text = runMethod @"get_clip_text"
+
+get_clip_uv :: Method "get_clip_uv" cls sig => cls -> sig
+get_clip_uv = runMethod @"get_clip_uv"
+
+get_clipboard :: Method "get_clipboard" cls sig => cls -> sig
+get_clipboard = runMethod @"get_clipboard"
+
+get_close_button :: Method "get_close_button" cls sig => cls -> sig
+get_close_button = runMethod @"get_close_button"
+
+get_closest_offset ::
+                     Method "get_closest_offset" cls sig => cls -> sig
+get_closest_offset = runMethod @"get_closest_offset"
+
+get_closest_point ::
+                    Method "get_closest_point" cls sig => cls -> sig
+get_closest_point = runMethod @"get_closest_point"
+
+get_closest_point_normal ::
+                           Method "get_closest_point_normal" cls sig => cls -> sig
+get_closest_point_normal = runMethod @"get_closest_point_normal"
+
+get_closest_point_owner ::
+                          Method "get_closest_point_owner" cls sig => cls -> sig
+get_closest_point_owner = runMethod @"get_closest_point_owner"
+
+get_closest_point_to_segment ::
+                               Method "get_closest_point_to_segment" cls sig => cls -> sig
+get_closest_point_to_segment
+  = runMethod @"get_closest_point_to_segment"
+
+get_closest_point_to_segment_2d ::
+                                  Method "get_closest_point_to_segment_2d" cls sig => cls -> sig
+get_closest_point_to_segment_2d
+  = runMethod @"get_closest_point_to_segment_2d"
+
+get_closest_point_to_segment_uncapped ::
+                                        Method "get_closest_point_to_segment_uncapped" cls sig =>
+                                        cls -> sig
+get_closest_point_to_segment_uncapped
+  = runMethod @"get_closest_point_to_segment_uncapped"
+
+get_closest_point_to_segment_uncapped_2d ::
+                                           Method "get_closest_point_to_segment_uncapped_2d" cls
+                                             sig =>
+                                           cls -> sig
+get_closest_point_to_segment_uncapped_2d
+  = runMethod @"get_closest_point_to_segment_uncapped_2d"
+
+get_closest_points_between_segments ::
+                                      Method "get_closest_points_between_segments" cls sig =>
+                                      cls -> sig
+get_closest_points_between_segments
+  = runMethod @"get_closest_points_between_segments"
+
+get_closest_points_between_segments_2d ::
+                                         Method "get_closest_points_between_segments_2d" cls sig =>
+                                         cls -> sig
+get_closest_points_between_segments_2d
+  = runMethod @"get_closest_points_between_segments_2d"
+
+get_closest_position_in_segment ::
+                                  Method "get_closest_position_in_segment" cls sig => cls -> sig
+get_closest_position_in_segment
+  = runMethod @"get_closest_position_in_segment"
+
+get_cmdline_args :: Method "get_cmdline_args" cls sig => cls -> sig
+get_cmdline_args = runMethod @"get_cmdline_args"
+
+get_code :: Method "get_code" cls sig => cls -> sig
+get_code = runMethod @"get_code"
+
+get_collider :: Method "get_collider" cls sig => cls -> sig
+get_collider = runMethod @"get_collider"
+
+get_collider_id :: Method "get_collider_id" cls sig => cls -> sig
+get_collider_id = runMethod @"get_collider_id"
+
+get_collider_metadata ::
+                        Method "get_collider_metadata" cls sig => cls -> sig
+get_collider_metadata = runMethod @"get_collider_metadata"
+
+get_collider_rid :: Method "get_collider_rid" cls sig => cls -> sig
+get_collider_rid = runMethod @"get_collider_rid"
+
+get_collider_shape ::
+                     Method "get_collider_shape" cls sig => cls -> sig
+get_collider_shape = runMethod @"get_collider_shape"
+
+get_collider_shape_index ::
+                           Method "get_collider_shape_index" cls sig => cls -> sig
+get_collider_shape_index = runMethod @"get_collider_shape_index"
+
+get_collider_velocity ::
+                        Method "get_collider_velocity" cls sig => cls -> sig
+get_collider_velocity = runMethod @"get_collider_velocity"
+
+get_colliding_bodies ::
+                       Method "get_colliding_bodies" cls sig => cls -> sig
+get_colliding_bodies = runMethod @"get_colliding_bodies"
+
+get_collision_bounce ::
+                       Method "get_collision_bounce" cls sig => cls -> sig
+get_collision_bounce = runMethod @"get_collision_bounce"
+
+get_collision_exceptions ::
+                           Method "get_collision_exceptions" cls sig => cls -> sig
+get_collision_exceptions = runMethod @"get_collision_exceptions"
+
+get_collision_friction ::
+                         Method "get_collision_friction" cls sig => cls -> sig
+get_collision_friction = runMethod @"get_collision_friction"
+
+get_collision_layer ::
+                      Method "get_collision_layer" cls sig => cls -> sig
+get_collision_layer = runMethod @"get_collision_layer"
+
+get_collision_layer_bit ::
+                          Method "get_collision_layer_bit" cls sig => cls -> sig
+get_collision_layer_bit = runMethod @"get_collision_layer_bit"
+
+get_collision_mask ::
+                     Method "get_collision_mask" cls sig => cls -> sig
+get_collision_mask = runMethod @"get_collision_mask"
+
+get_collision_mask_bit ::
+                         Method "get_collision_mask_bit" cls sig => cls -> sig
+get_collision_mask_bit = runMethod @"get_collision_mask_bit"
+
+get_collision_normal ::
+                       Method "get_collision_normal" cls sig => cls -> sig
+get_collision_normal = runMethod @"get_collision_normal"
+
+get_collision_point ::
+                      Method "get_collision_point" cls sig => cls -> sig
+get_collision_point = runMethod @"get_collision_point"
+
+get_collision_use_kinematic ::
+                              Method "get_collision_use_kinematic" cls sig => cls -> sig
+get_collision_use_kinematic
+  = runMethod @"get_collision_use_kinematic"
+
+get_color :: Method "get_color" cls sig => cls -> sig
+get_color = runMethod @"get_color"
+
+get_color_default ::
+                    Method "get_color_default" cls sig => cls -> sig
+get_color_default = runMethod @"get_color_default"
+
+get_color_format :: Method "get_color_format" cls sig => cls -> sig
+get_color_format = runMethod @"get_color_format"
+
+get_color_list :: Method "get_color_list" cls sig => cls -> sig
+get_color_list = runMethod @"get_color_list"
+
+get_color_ramp :: Method "get_color_ramp" cls sig => cls -> sig
+get_color_ramp = runMethod @"get_color_ramp"
+
+get_colors :: Method "get_colors" cls sig => cls -> sig
+get_colors = runMethod @"get_colors"
+
+get_column_at_position ::
+                         Method "get_column_at_position" cls sig => cls -> sig
+get_column_at_position = runMethod @"get_column_at_position"
+
+get_column_title :: Method "get_column_title" cls sig => cls -> sig
+get_column_title = runMethod @"get_column_title"
+
+get_column_width :: Method "get_column_width" cls sig => cls -> sig
+get_column_width = runMethod @"get_column_width"
+
+get_columns :: Method "get_columns" cls sig => cls -> sig
+get_columns = runMethod @"get_columns"
+
+get_combined_minimum_size ::
+                            Method "get_combined_minimum_size" cls sig => cls -> sig
+get_combined_minimum_size = runMethod @"get_combined_minimum_size"
+
+get_command :: Method "get_command" cls sig => cls -> sig
+get_command = runMethod @"get_command"
+
+get_compression_mode ::
+                       Method "get_compression_mode" cls sig => cls -> sig
+get_compression_mode = runMethod @"get_compression_mode"
+
+get_config_file :: Method "get_config_file" cls sig => cls -> sig
+get_config_file = runMethod @"get_config_file"
+
+get_connected_host ::
+                     Method "get_connected_host" cls sig => cls -> sig
+get_connected_host = runMethod @"get_connected_host"
+
+get_connected_joypads ::
+                        Method "get_connected_joypads" cls sig => cls -> sig
+get_connected_joypads = runMethod @"get_connected_joypads"
+
+get_connected_midi_inputs ::
+                            Method "get_connected_midi_inputs" cls sig => cls -> sig
+get_connected_midi_inputs = runMethod @"get_connected_midi_inputs"
+
+get_connected_port ::
+                     Method "get_connected_port" cls sig => cls -> sig
+get_connected_port = runMethod @"get_connected_port"
+
+get_connection :: Method "get_connection" cls sig => cls -> sig
+get_connection = runMethod @"get_connection"
+
+get_connection_binds ::
+                       Method "get_connection_binds" cls sig => cls -> sig
+get_connection_binds = runMethod @"get_connection_binds"
+
+get_connection_count ::
+                       Method "get_connection_count" cls sig => cls -> sig
+get_connection_count = runMethod @"get_connection_count"
+
+get_connection_flags ::
+                       Method "get_connection_flags" cls sig => cls -> sig
+get_connection_flags = runMethod @"get_connection_flags"
+
+get_connection_input_color ::
+                             Method "get_connection_input_color" cls sig => cls -> sig
+get_connection_input_color
+  = runMethod @"get_connection_input_color"
+
+get_connection_input_count ::
+                             Method "get_connection_input_count" cls sig => cls -> sig
+get_connection_input_count
+  = runMethod @"get_connection_input_count"
+
+get_connection_input_position ::
+                                Method "get_connection_input_position" cls sig => cls -> sig
+get_connection_input_position
+  = runMethod @"get_connection_input_position"
+
+get_connection_input_type ::
+                            Method "get_connection_input_type" cls sig => cls -> sig
+get_connection_input_type = runMethod @"get_connection_input_type"
+
+get_connection_list ::
+                      Method "get_connection_list" cls sig => cls -> sig
+get_connection_list = runMethod @"get_connection_list"
+
+get_connection_method ::
+                        Method "get_connection_method" cls sig => cls -> sig
+get_connection_method = runMethod @"get_connection_method"
+
+get_connection_output_color ::
+                              Method "get_connection_output_color" cls sig => cls -> sig
+get_connection_output_color
+  = runMethod @"get_connection_output_color"
+
+get_connection_output_count ::
+                              Method "get_connection_output_count" cls sig => cls -> sig
+get_connection_output_count
+  = runMethod @"get_connection_output_count"
+
+get_connection_output_position ::
+                                 Method "get_connection_output_position" cls sig => cls -> sig
+get_connection_output_position
+  = runMethod @"get_connection_output_position"
+
+get_connection_output_type ::
+                             Method "get_connection_output_type" cls sig => cls -> sig
+get_connection_output_type
+  = runMethod @"get_connection_output_type"
+
+get_connection_signal ::
+                        Method "get_connection_signal" cls sig => cls -> sig
+get_connection_signal = runMethod @"get_connection_signal"
+
+get_connection_source ::
+                        Method "get_connection_source" cls sig => cls -> sig
+get_connection_source = runMethod @"get_connection_source"
+
+get_connection_status ::
+                        Method "get_connection_status" cls sig => cls -> sig
+get_connection_status = runMethod @"get_connection_status"
+
+get_connection_target ::
+                        Method "get_connection_target" cls sig => cls -> sig
+get_connection_target = runMethod @"get_connection_target"
+
+get_constant :: Method "get_constant" cls sig => cls -> sig
+get_constant = runMethod @"get_constant"
+
+get_constant_angular_velocity ::
+                                Method "get_constant_angular_velocity" cls sig => cls -> sig
+get_constant_angular_velocity
+  = runMethod @"get_constant_angular_velocity"
+
+get_constant_linear_velocity ::
+                               Method "get_constant_linear_velocity" cls sig => cls -> sig
+get_constant_linear_velocity
+  = runMethod @"get_constant_linear_velocity"
+
+get_constant_list ::
+                    Method "get_constant_list" cls sig => cls -> sig
+get_constant_list = runMethod @"get_constant_list"
+
+get_constant_type ::
+                    Method "get_constant_type" cls sig => cls -> sig
+get_constant_type = runMethod @"get_constant_type"
+
+get_constant_value ::
+                     Method "get_constant_value" cls sig => cls -> sig
+get_constant_value = runMethod @"get_constant_value"
+
+get_constructor :: Method "get_constructor" cls sig => cls -> sig
+get_constructor = runMethod @"get_constructor"
+
+get_constructor_type ::
+                       Method "get_constructor_type" cls sig => cls -> sig
+get_constructor_type = runMethod @"get_constructor_type"
+
+get_contact_collider ::
+                       Method "get_contact_collider" cls sig => cls -> sig
+get_contact_collider = runMethod @"get_contact_collider"
+
+get_contact_collider_id ::
+                          Method "get_contact_collider_id" cls sig => cls -> sig
+get_contact_collider_id = runMethod @"get_contact_collider_id"
+
+get_contact_collider_object ::
+                              Method "get_contact_collider_object" cls sig => cls -> sig
+get_contact_collider_object
+  = runMethod @"get_contact_collider_object"
+
+get_contact_collider_position ::
+                                Method "get_contact_collider_position" cls sig => cls -> sig
+get_contact_collider_position
+  = runMethod @"get_contact_collider_position"
+
+get_contact_collider_shape ::
+                             Method "get_contact_collider_shape" cls sig => cls -> sig
+get_contact_collider_shape
+  = runMethod @"get_contact_collider_shape"
+
+get_contact_collider_shape_metadata ::
+                                      Method "get_contact_collider_shape_metadata" cls sig =>
+                                      cls -> sig
+get_contact_collider_shape_metadata
+  = runMethod @"get_contact_collider_shape_metadata"
+
+get_contact_collider_velocity_at_position ::
+                                            Method "get_contact_collider_velocity_at_position" cls
+                                              sig =>
+                                            cls -> sig
+get_contact_collider_velocity_at_position
+  = runMethod @"get_contact_collider_velocity_at_position"
+
+get_contact_count ::
+                    Method "get_contact_count" cls sig => cls -> sig
+get_contact_count = runMethod @"get_contact_count"
+
+get_contact_impulse ::
+                      Method "get_contact_impulse" cls sig => cls -> sig
+get_contact_impulse = runMethod @"get_contact_impulse"
+
+get_contact_local_normal ::
+                           Method "get_contact_local_normal" cls sig => cls -> sig
+get_contact_local_normal = runMethod @"get_contact_local_normal"
+
+get_contact_local_position ::
+                             Method "get_contact_local_position" cls sig => cls -> sig
+get_contact_local_position
+  = runMethod @"get_contact_local_position"
+
+get_contact_local_shape ::
+                          Method "get_contact_local_shape" cls sig => cls -> sig
+get_contact_local_shape = runMethod @"get_contact_local_shape"
+
+get_content_height ::
+                     Method "get_content_height" cls sig => cls -> sig
+get_content_height = runMethod @"get_content_height"
+
+get_continuous_collision_detection_mode ::
+                                          Method "get_continuous_collision_detection_mode" cls
+                                            sig =>
+                                          cls -> sig
+get_continuous_collision_detection_mode
+  = runMethod @"get_continuous_collision_detection_mode"
+
+get_control :: Method "get_control" cls sig => cls -> sig
+get_control = runMethod @"get_control"
+
+get_controller_id ::
+                    Method "get_controller_id" cls sig => cls -> sig
+get_controller_id = runMethod @"get_controller_id"
+
+get_controller_name ::
+                      Method "get_controller_name" cls sig => cls -> sig
+get_controller_name = runMethod @"get_controller_name"
+
+get_copy_mode :: Method "get_copy_mode" cls sig => cls -> sig
+get_copy_mode = runMethod @"get_copy_mode"
+
+get_copyright_info ::
+                     Method "get_copyright_info" cls sig => cls -> sig
+get_copyright_info = runMethod @"get_copyright_info"
+
+get_corner_detail ::
+                    Method "get_corner_detail" cls sig => cls -> sig
+get_corner_detail = runMethod @"get_corner_detail"
+
+get_corner_radius ::
+                    Method "get_corner_radius" cls sig => cls -> sig
+get_corner_radius = runMethod @"get_corner_radius"
+
+get_cross_fade_time ::
+                      Method "get_cross_fade_time" cls sig => cls -> sig
+get_cross_fade_time = runMethod @"get_cross_fade_time"
+
+get_csv_line :: Method "get_csv_line" cls sig => cls -> sig
+get_csv_line = runMethod @"get_csv_line"
+
+get_cube_map :: Method "get_cube_map" cls sig => cls -> sig
+get_cube_map = runMethod @"get_cube_map"
+
+get_cubic_interpolation ::
+                          Method "get_cubic_interpolation" cls sig => cls -> sig
+get_cubic_interpolation = runMethod @"get_cubic_interpolation"
+
+get_cull_mask :: Method "get_cull_mask" cls sig => cls -> sig
+get_cull_mask = runMethod @"get_cull_mask"
+
+get_cull_mask_bit ::
+                    Method "get_cull_mask_bit" cls sig => cls -> sig
+get_cull_mask_bit = runMethod @"get_cull_mask_bit"
+
+get_cull_mode :: Method "get_cull_mode" cls sig => cls -> sig
+get_cull_mode = runMethod @"get_cull_mode"
+
+get_current_action_name ::
+                          Method "get_current_action_name" cls sig => cls -> sig
+get_current_action_name = runMethod @"get_current_action_name"
+
+get_current_animation ::
+                        Method "get_current_animation" cls sig => cls -> sig
+get_current_animation = runMethod @"get_current_animation"
+
+get_current_animation_length ::
+                               Method "get_current_animation_length" cls sig => cls -> sig
+get_current_animation_length
+  = runMethod @"get_current_animation_length"
+
+get_current_animation_position ::
+                                 Method "get_current_animation_position" cls sig => cls -> sig
+get_current_animation_position
+  = runMethod @"get_current_animation_position"
+
+get_current_dependencies ::
+                           Method "get_current_dependencies" cls sig => cls -> sig
+get_current_dependencies = runMethod @"get_current_dependencies"
+
+get_current_dir :: Method "get_current_dir" cls sig => cls -> sig
+get_current_dir = runMethod @"get_current_dir"
+
+get_current_drive ::
+                    Method "get_current_drive" cls sig => cls -> sig
+get_current_drive = runMethod @"get_current_drive"
+
+get_current_file :: Method "get_current_file" cls sig => cls -> sig
+get_current_file = runMethod @"get_current_file"
+
+get_current_library_path ::
+                           Method "get_current_library_path" cls sig => cls -> sig
+get_current_library_path = runMethod @"get_current_library_path"
+
+get_current_line :: Method "get_current_line" cls sig => cls -> sig
+get_current_line = runMethod @"get_current_line"
+
+get_current_node :: Method "get_current_node" cls sig => cls -> sig
+get_current_node = runMethod @"get_current_node"
+
+get_current_path :: Method "get_current_path" cls sig => cls -> sig
+get_current_path = runMethod @"get_current_path"
+
+get_current_scene ::
+                    Method "get_current_scene" cls sig => cls -> sig
+get_current_scene = runMethod @"get_current_scene"
+
+get_current_screen ::
+                     Method "get_current_screen" cls sig => cls -> sig
+get_current_screen = runMethod @"get_current_screen"
+
+get_current_script ::
+                     Method "get_current_script" cls sig => cls -> sig
+get_current_script = runMethod @"get_current_script"
+
+get_current_tab :: Method "get_current_tab" cls sig => cls -> sig
+get_current_tab = runMethod @"get_current_tab"
+
+get_current_tab_control ::
+                          Method "get_current_tab_control" cls sig => cls -> sig
+get_current_tab_control = runMethod @"get_current_tab_control"
+
+get_cursor_position ::
+                      Method "get_cursor_position" cls sig => cls -> sig
+get_cursor_position = runMethod @"get_cursor_position"
+
+get_cursor_shape :: Method "get_cursor_shape" cls sig => cls -> sig
+get_cursor_shape = runMethod @"get_cursor_shape"
+
+get_curve :: Method "get_curve" cls sig => cls -> sig
+get_curve = runMethod @"get_curve"
+
+get_custom_aabb :: Method "get_custom_aabb" cls sig => cls -> sig
+get_custom_aabb = runMethod @"get_custom_aabb"
+
+get_custom_bg_color ::
+                      Method "get_custom_bg_color" cls sig => cls -> sig
+get_custom_bg_color = runMethod @"get_custom_bg_color"
+
+get_custom_data_format ::
+                         Method "get_custom_data_format" cls sig => cls -> sig
+get_custom_data_format = runMethod @"get_custom_data_format"
+
+get_custom_minimum_height ::
+                            Method "get_custom_minimum_height" cls sig => cls -> sig
+get_custom_minimum_height = runMethod @"get_custom_minimum_height"
+
+get_custom_minimum_size ::
+                          Method "get_custom_minimum_size" cls sig => cls -> sig
+get_custom_minimum_size = runMethod @"get_custom_minimum_size"
+
+get_custom_multiplayer ::
+                         Method "get_custom_multiplayer" cls sig => cls -> sig
+get_custom_multiplayer = runMethod @"get_custom_multiplayer"
+
+get_custom_popup_rect ::
+                        Method "get_custom_popup_rect" cls sig => cls -> sig
+get_custom_popup_rect = runMethod @"get_custom_popup_rect"
+
+get_custom_solver_bias ::
+                         Method "get_custom_solver_bias" cls sig => cls -> sig
+get_custom_solver_bias = runMethod @"get_custom_solver_bias"
+
+get_custom_step :: Method "get_custom_step" cls sig => cls -> sig
+get_custom_step = runMethod @"get_custom_step"
+
+get_custom_transform ::
+                       Method "get_custom_transform" cls sig => cls -> sig
+get_custom_transform = runMethod @"get_custom_transform"
+
+get_custom_viewport ::
+                      Method "get_custom_viewport" cls sig => cls -> sig
+get_custom_viewport = runMethod @"get_custom_viewport"
+
+get_cutoff :: Method "get_cutoff" cls sig => cls -> sig
+get_cutoff = runMethod @"get_cutoff"
+
+get_d :: Method "get_d" cls sig => cls -> sig
+get_d = runMethod @"get_d"
+
+get_damping :: Method "get_damping" cls sig => cls -> sig
+get_damping = runMethod @"get_damping"
+
+get_damping_coefficient ::
+                          Method "get_damping_coefficient" cls sig => cls -> sig
+get_damping_coefficient = runMethod @"get_damping_coefficient"
+
+get_damping_compression ::
+                          Method "get_damping_compression" cls sig => cls -> sig
+get_damping_compression = runMethod @"get_damping_compression"
+
+get_damping_relaxation ::
+                         Method "get_damping_relaxation" cls sig => cls -> sig
+get_damping_relaxation = runMethod @"get_damping_relaxation"
+
+get_data :: Method "get_data" cls sig => cls -> sig
+get_data = runMethod @"get_data"
+
+get_data_array :: Method "get_data_array" cls sig => cls -> sig
+get_data_array = runMethod @"get_data_array"
+
+get_date :: Method "get_date" cls sig => cls -> sig
+get_date = runMethod @"get_date"
+
+get_datetime :: Method "get_datetime" cls sig => cls -> sig
+get_datetime = runMethod @"get_datetime"
+
+get_datetime_from_unix_time ::
+                              Method "get_datetime_from_unix_time" cls sig => cls -> sig
+get_datetime_from_unix_time
+  = runMethod @"get_datetime_from_unix_time"
+
+get_db :: Method "get_db" cls sig => cls -> sig
+get_db = runMethod @"get_db"
+
+get_deadzone :: Method "get_deadzone" cls sig => cls -> sig
+get_deadzone = runMethod @"get_deadzone"
+
+get_debug_draw :: Method "get_debug_draw" cls sig => cls -> sig
+get_debug_draw = runMethod @"get_debug_draw"
+
+get_deconstruct_type ::
+                       Method "get_deconstruct_type" cls sig => cls -> sig
+get_deconstruct_type = runMethod @"get_deconstruct_type"
+
+get_default_blend_time ::
+                         Method "get_default_blend_time" cls sig => cls -> sig
+get_default_blend_time = runMethod @"get_default_blend_time"
+
+get_default_color ::
+                    Method "get_default_color" cls sig => cls -> sig
+get_default_color = runMethod @"get_default_color"
+
+get_default_cursor_shape ::
+                           Method "get_default_cursor_shape" cls sig => cls -> sig
+get_default_cursor_shape = runMethod @"get_default_cursor_shape"
+
+get_default_font :: Method "get_default_font" cls sig => cls -> sig
+get_default_font = runMethod @"get_default_font"
+
+get_default_input_value ::
+                          Method "get_default_input_value" cls sig => cls -> sig
+get_default_input_value = runMethod @"get_default_input_value"
+
+get_default_length ::
+                     Method "get_default_length" cls sig => cls -> sig
+get_default_length = runMethod @"get_default_length"
+
+get_default_margin ::
+                     Method "get_default_margin" cls sig => cls -> sig
+get_default_margin = runMethod @"get_default_margin"
+
+get_default_texture_param ::
+                            Method "get_default_texture_param" cls sig => cls -> sig
+get_default_texture_param = runMethod @"get_default_texture_param"
+
+get_delta :: Method "get_delta" cls sig => cls -> sig
+get_delta = runMethod @"get_delta"
+
+get_dependencies :: Method "get_dependencies" cls sig => cls -> sig
+get_dependencies = runMethod @"get_dependencies"
+
+get_depth :: Method "get_depth" cls sig => cls -> sig
+get_depth = runMethod @"get_depth"
+
+get_depth_deep_parallax_max_layers ::
+                                     Method "get_depth_deep_parallax_max_layers" cls sig =>
+                                     cls -> sig
+get_depth_deep_parallax_max_layers
+  = runMethod @"get_depth_deep_parallax_max_layers"
+
+get_depth_deep_parallax_min_layers ::
+                                     Method "get_depth_deep_parallax_min_layers" cls sig =>
+                                     cls -> sig
+get_depth_deep_parallax_min_layers
+  = runMethod @"get_depth_deep_parallax_min_layers"
+
+get_depth_draw_mode ::
+                      Method "get_depth_draw_mode" cls sig => cls -> sig
+get_depth_draw_mode = runMethod @"get_depth_draw_mode"
+
+get_depth_scale :: Method "get_depth_scale" cls sig => cls -> sig
+get_depth_scale = runMethod @"get_depth_scale"
+
+get_descent :: Method "get_descent" cls sig => cls -> sig
+get_descent = runMethod @"get_descent"
+
+get_description :: Method "get_description" cls sig => cls -> sig
+get_description = runMethod @"get_description"
+
+get_description_url ::
+                      Method "get_description_url" cls sig => cls -> sig
+get_description_url = runMethod @"get_description_url"
+
+get_detail_blend_mode ::
+                        Method "get_detail_blend_mode" cls sig => cls -> sig
+get_detail_blend_mode = runMethod @"get_detail_blend_mode"
+
+get_detail_sample_distance ::
+                             Method "get_detail_sample_distance" cls sig => cls -> sig
+get_detail_sample_distance
+  = runMethod @"get_detail_sample_distance"
+
+get_detail_sample_max_error ::
+                              Method "get_detail_sample_max_error" cls sig => cls -> sig
+get_detail_sample_max_error
+  = runMethod @"get_detail_sample_max_error"
+
+get_detail_uv :: Method "get_detail_uv" cls sig => cls -> sig
+get_detail_uv = runMethod @"get_detail_uv"
+
+get_device :: Method "get_device" cls sig => cls -> sig
+get_device = runMethod @"get_device"
+
+get_device_count :: Method "get_device_count" cls sig => cls -> sig
+get_device_count = runMethod @"get_device_count"
+
+get_device_list :: Method "get_device_list" cls sig => cls -> sig
+get_device_list = runMethod @"get_device_list"
+
+get_diffuse_mode :: Method "get_diffuse_mode" cls sig => cls -> sig
+get_diffuse_mode = runMethod @"get_diffuse_mode"
+
+get_direct_space_state ::
+                         Method "get_direct_space_state" cls sig => cls -> sig
+get_direct_space_state = runMethod @"get_direct_space_state"
+
+get_disabled_texture ::
+                       Method "get_disabled_texture" cls sig => cls -> sig
+get_disabled_texture = runMethod @"get_disabled_texture"
+
+get_discover_local_port ::
+                          Method "get_discover_local_port" cls sig => cls -> sig
+get_discover_local_port = runMethod @"get_discover_local_port"
+
+get_discover_multicast_if ::
+                            Method "get_discover_multicast_if" cls sig => cls -> sig
+get_discover_multicast_if = runMethod @"get_discover_multicast_if"
+
+get_dispatch_mode ::
+                    Method "get_dispatch_mode" cls sig => cls -> sig
+get_dispatch_mode = runMethod @"get_dispatch_mode"
+
+get_display_mode :: Method "get_display_mode" cls sig => cls -> sig
+get_display_mode = runMethod @"get_display_mode"
+
+get_display_to_lens ::
+                      Method "get_display_to_lens" cls sig => cls -> sig
+get_display_to_lens = runMethod @"get_display_to_lens"
+
+get_display_width ::
+                    Method "get_display_width" cls sig => cls -> sig
+get_display_width = runMethod @"get_display_width"
+
+get_distance_fade ::
+                    Method "get_distance_fade" cls sig => cls -> sig
+get_distance_fade = runMethod @"get_distance_fade"
+
+get_distance_fade_max_distance ::
+                                 Method "get_distance_fade_max_distance" cls sig => cls -> sig
+get_distance_fade_max_distance
+  = runMethod @"get_distance_fade_max_distance"
+
+get_distance_fade_min_distance ::
+                                 Method "get_distance_fade_min_distance" cls sig => cls -> sig
+get_distance_fade_min_distance
+  = runMethod @"get_distance_fade_min_distance"
+
+get_dof_blur_far_amount ::
+                          Method "get_dof_blur_far_amount" cls sig => cls -> sig
+get_dof_blur_far_amount = runMethod @"get_dof_blur_far_amount"
+
+get_dof_blur_far_distance ::
+                            Method "get_dof_blur_far_distance" cls sig => cls -> sig
+get_dof_blur_far_distance = runMethod @"get_dof_blur_far_distance"
+
+get_dof_blur_far_quality ::
+                           Method "get_dof_blur_far_quality" cls sig => cls -> sig
+get_dof_blur_far_quality = runMethod @"get_dof_blur_far_quality"
+
+get_dof_blur_far_transition ::
+                              Method "get_dof_blur_far_transition" cls sig => cls -> sig
+get_dof_blur_far_transition
+  = runMethod @"get_dof_blur_far_transition"
+
+get_dof_blur_near_amount ::
+                           Method "get_dof_blur_near_amount" cls sig => cls -> sig
+get_dof_blur_near_amount = runMethod @"get_dof_blur_near_amount"
+
+get_dof_blur_near_distance ::
+                             Method "get_dof_blur_near_distance" cls sig => cls -> sig
+get_dof_blur_near_distance
+  = runMethod @"get_dof_blur_near_distance"
+
+get_dof_blur_near_quality ::
+                            Method "get_dof_blur_near_quality" cls sig => cls -> sig
+get_dof_blur_near_quality = runMethod @"get_dof_blur_near_quality"
+
+get_dof_blur_near_transition ::
+                               Method "get_dof_blur_near_transition" cls sig => cls -> sig
+get_dof_blur_near_transition
+  = runMethod @"get_dof_blur_near_transition"
+
+get_donor_info :: Method "get_donor_info" cls sig => cls -> sig
+get_donor_info = runMethod @"get_donor_info"
+
+get_doppler_tracking ::
+                       Method "get_doppler_tracking" cls sig => cls -> sig
+get_doppler_tracking = runMethod @"get_doppler_tracking"
+
+get_double :: Method "get_double" cls sig => cls -> sig
+get_double = runMethod @"get_double"
+
+get_download_file ::
+                    Method "get_download_file" cls sig => cls -> sig
+get_download_file = runMethod @"get_download_file"
+
+get_downloaded_bytes ::
+                       Method "get_downloaded_bytes" cls sig => cls -> sig
+get_downloaded_bytes = runMethod @"get_downloaded_bytes"
+
+get_drag_coefficient ::
+                       Method "get_drag_coefficient" cls sig => cls -> sig
+get_drag_coefficient = runMethod @"get_drag_coefficient"
+
+get_drag_data :: Method "get_drag_data" cls sig => cls -> sig
+get_drag_data = runMethod @"get_drag_data"
+
+get_drag_data_fw :: Method "get_drag_data_fw" cls sig => cls -> sig
+get_drag_data_fw = runMethod @"get_drag_data_fw"
+
+get_drag_margin :: Method "get_drag_margin" cls sig => cls -> sig
+get_drag_margin = runMethod @"get_drag_margin"
+
+get_drag_to_rearrange_enabled ::
+                                Method "get_drag_to_rearrange_enabled" cls sig => cls -> sig
+get_drag_to_rearrange_enabled
+  = runMethod @"get_drag_to_rearrange_enabled"
+
+get_dragger_visibility ::
+                         Method "get_dragger_visibility" cls sig => cls -> sig
+get_dragger_visibility = runMethod @"get_dragger_visibility"
+
+get_draw_flag :: Method "get_draw_flag" cls sig => cls -> sig
+get_draw_flag = runMethod @"get_draw_flag"
+
+get_draw_mode :: Method "get_draw_mode" cls sig => cls -> sig
+get_draw_mode = runMethod @"get_draw_mode"
+
+get_draw_order :: Method "get_draw_order" cls sig => cls -> sig
+get_draw_order = runMethod @"get_draw_order"
+
+get_draw_pass_mesh ::
+                     Method "get_draw_pass_mesh" cls sig => cls -> sig
+get_draw_pass_mesh = runMethod @"get_draw_pass_mesh"
+
+get_draw_passes :: Method "get_draw_passes" cls sig => cls -> sig
+get_draw_passes = runMethod @"get_draw_passes"
+
+get_drive :: Method "get_drive" cls sig => cls -> sig
+get_drive = runMethod @"get_drive"
+
+get_drive_count :: Method "get_drive_count" cls sig => cls -> sig
+get_drive_count = runMethod @"get_drive_count"
+
+get_drop_mode_flags ::
+                      Method "get_drop_mode_flags" cls sig => cls -> sig
+get_drop_mode_flags = runMethod @"get_drop_mode_flags"
+
+get_drop_section_at_position ::
+                               Method "get_drop_section_at_position" cls sig => cls -> sig
+get_drop_section_at_position
+  = runMethod @"get_drop_section_at_position"
+
+get_dry :: Method "get_dry" cls sig => cls -> sig
+get_dry = runMethod @"get_dry"
+
+get_dynamic_data :: Method "get_dynamic_data" cls sig => cls -> sig
+get_dynamic_data = runMethod @"get_dynamic_data"
+
+get_dynamic_memory_usage ::
+                           Method "get_dynamic_memory_usage" cls sig => cls -> sig
+get_dynamic_memory_usage = runMethod @"get_dynamic_memory_usage"
+
+get_dynamic_range ::
+                    Method "get_dynamic_range" cls sig => cls -> sig
+get_dynamic_range = runMethod @"get_dynamic_range"
+
+get_edge_count :: Method "get_edge_count" cls sig => cls -> sig
+get_edge_count = runMethod @"get_edge_count"
+
+get_edge_faces :: Method "get_edge_faces" cls sig => cls -> sig
+get_edge_faces = runMethod @"get_edge_faces"
+
+get_edge_max_error ::
+                     Method "get_edge_max_error" cls sig => cls -> sig
+get_edge_max_error = runMethod @"get_edge_max_error"
+
+get_edge_max_length ::
+                      Method "get_edge_max_length" cls sig => cls -> sig
+get_edge_max_length = runMethod @"get_edge_max_length"
+
+get_edge_meta :: Method "get_edge_meta" cls sig => cls -> sig
+get_edge_meta = runMethod @"get_edge_meta"
+
+get_edge_vertex :: Method "get_edge_vertex" cls sig => cls -> sig
+get_edge_vertex = runMethod @"get_edge_vertex"
+
+get_edited :: Method "get_edited" cls sig => cls -> sig
+get_edited = runMethod @"get_edited"
+
+get_edited_column ::
+                    Method "get_edited_column" cls sig => cls -> sig
+get_edited_column = runMethod @"get_edited_column"
+
+get_edited_object ::
+                    Method "get_edited_object" cls sig => cls -> sig
+get_edited_object = runMethod @"get_edited_object"
+
+get_edited_property ::
+                      Method "get_edited_property" cls sig => cls -> sig
+get_edited_property = runMethod @"get_edited_property"
+
+get_edited_scene_root ::
+                        Method "get_edited_scene_root" cls sig => cls -> sig
+get_edited_scene_root = runMethod @"get_edited_scene_root"
+
+get_editor_interface ::
+                       Method "get_editor_interface" cls sig => cls -> sig
+get_editor_interface = runMethod @"get_editor_interface"
+
+get_editor_settings ::
+                      Method "get_editor_settings" cls sig => cls -> sig
+get_editor_settings = runMethod @"get_editor_settings"
+
+get_editor_viewport ::
+                      Method "get_editor_viewport" cls sig => cls -> sig
+get_editor_viewport = runMethod @"get_editor_viewport"
+
+get_emission :: Method "get_emission" cls sig => cls -> sig
+get_emission = runMethod @"get_emission"
+
+get_emission_angle ::
+                     Method "get_emission_angle" cls sig => cls -> sig
+get_emission_angle = runMethod @"get_emission_angle"
+
+get_emission_angle_filter_attenuation_db ::
+                                           Method "get_emission_angle_filter_attenuation_db" cls
+                                             sig =>
+                                           cls -> sig
+get_emission_angle_filter_attenuation_db
+  = runMethod @"get_emission_angle_filter_attenuation_db"
+
+get_emission_box_extents ::
+                           Method "get_emission_box_extents" cls sig => cls -> sig
+get_emission_box_extents = runMethod @"get_emission_box_extents"
+
+get_emission_color_texture ::
+                             Method "get_emission_color_texture" cls sig => cls -> sig
+get_emission_color_texture
+  = runMethod @"get_emission_color_texture"
+
+get_emission_colors ::
+                      Method "get_emission_colors" cls sig => cls -> sig
+get_emission_colors = runMethod @"get_emission_colors"
+
+get_emission_energy ::
+                      Method "get_emission_energy" cls sig => cls -> sig
+get_emission_energy = runMethod @"get_emission_energy"
+
+get_emission_normal_texture ::
+                              Method "get_emission_normal_texture" cls sig => cls -> sig
+get_emission_normal_texture
+  = runMethod @"get_emission_normal_texture"
+
+get_emission_normals ::
+                       Method "get_emission_normals" cls sig => cls -> sig
+get_emission_normals = runMethod @"get_emission_normals"
+
+get_emission_operator ::
+                        Method "get_emission_operator" cls sig => cls -> sig
+get_emission_operator = runMethod @"get_emission_operator"
+
+get_emission_point_count ::
+                           Method "get_emission_point_count" cls sig => cls -> sig
+get_emission_point_count = runMethod @"get_emission_point_count"
+
+get_emission_point_texture ::
+                             Method "get_emission_point_texture" cls sig => cls -> sig
+get_emission_point_texture
+  = runMethod @"get_emission_point_texture"
+
+get_emission_points ::
+                      Method "get_emission_points" cls sig => cls -> sig
+get_emission_points = runMethod @"get_emission_points"
+
+get_emission_rect_extents ::
+                            Method "get_emission_rect_extents" cls sig => cls -> sig
+get_emission_rect_extents = runMethod @"get_emission_rect_extents"
+
+get_emission_shape ::
+                     Method "get_emission_shape" cls sig => cls -> sig
+get_emission_shape = runMethod @"get_emission_shape"
+
+get_emission_sphere_radius ::
+                             Method "get_emission_sphere_radius" cls sig => cls -> sig
+get_emission_sphere_radius
+  = runMethod @"get_emission_sphere_radius"
+
+get_enabled_focus_mode ::
+                         Method "get_enabled_focus_mode" cls sig => cls -> sig
+get_enabled_focus_mode = runMethod @"get_enabled_focus_mode"
+
+get_enabled_inputs ::
+                     Method "get_enabled_inputs" cls sig => cls -> sig
+get_enabled_inputs = runMethod @"get_enabled_inputs"
+
+get_end :: Method "get_end" cls sig => cls -> sig
+get_end = runMethod @"get_end"
+
+get_end_cap_mode :: Method "get_end_cap_mode" cls sig => cls -> sig
+get_end_cap_mode = runMethod @"get_end_cap_mode"
+
+get_end_node :: Method "get_end_node" cls sig => cls -> sig
+get_end_node = runMethod @"get_end_node"
+
+get_endian_swap :: Method "get_endian_swap" cls sig => cls -> sig
+get_endian_swap = runMethod @"get_endian_swap"
+
+get_energy :: Method "get_energy" cls sig => cls -> sig
+get_energy = runMethod @"get_energy"
+
+get_engine_force :: Method "get_engine_force" cls sig => cls -> sig
+get_engine_force = runMethod @"get_engine_force"
+
+get_environment :: Method "get_environment" cls sig => cls -> sig
+get_environment = runMethod @"get_environment"
+
+get_error :: Method "get_error" cls sig => cls -> sig
+get_error = runMethod @"get_error"
+
+get_error_line :: Method "get_error_line" cls sig => cls -> sig
+get_error_line = runMethod @"get_error_line"
+
+get_error_string :: Method "get_error_string" cls sig => cls -> sig
+get_error_string = runMethod @"get_error_string"
+
+get_error_text :: Method "get_error_text" cls sig => cls -> sig
+get_error_text = runMethod @"get_error_text"
+
+get_exclude :: Method "get_exclude" cls sig => cls -> sig
+get_exclude = runMethod @"get_exclude"
+
+get_exclude_nodes_from_collision ::
+                                   Method "get_exclude_nodes_from_collision" cls sig => cls -> sig
+get_exclude_nodes_from_collision
+  = runMethod @"get_exclude_nodes_from_collision"
+
+get_exclude_parent_body ::
+                          Method "get_exclude_parent_body" cls sig => cls -> sig
+get_exclude_parent_body = runMethod @"get_exclude_parent_body"
+
+get_executable_path ::
+                      Method "get_executable_path" cls sig => cls -> sig
+get_executable_path = runMethod @"get_executable_path"
+
+get_exit_code :: Method "get_exit_code" cls sig => cls -> sig
+get_exit_code = runMethod @"get_exit_code"
+
+get_expand :: Method "get_expand" cls sig => cls -> sig
+get_expand = runMethod @"get_expand"
+
+get_expand_margin ::
+                    Method "get_expand_margin" cls sig => cls -> sig
+get_expand_margin = runMethod @"get_expand_margin"
+
+get_expand_margin_size ::
+                         Method "get_expand_margin_size" cls sig => cls -> sig
+get_expand_margin_size = runMethod @"get_expand_margin_size"
+
+get_expand_right :: Method "get_expand_right" cls sig => cls -> sig
+get_expand_right = runMethod @"get_expand_right"
+
+get_expand_to_text_length ::
+                            Method "get_expand_to_text_length" cls sig => cls -> sig
+get_expand_to_text_length = runMethod @"get_expand_to_text_length"
+
+get_explosiveness_ratio ::
+                          Method "get_explosiveness_ratio" cls sig => cls -> sig
+get_explosiveness_ratio = runMethod @"get_explosiveness_ratio"
+
+get_extents :: Method "get_extents" cls sig => cls -> sig
+get_extents = runMethod @"get_extents"
+
+get_extra_cull_margin ::
+                        Method "get_extra_cull_margin" cls sig => cls -> sig
+get_extra_cull_margin = runMethod @"get_extra_cull_margin"
+
+get_face_count :: Method "get_face_count" cls sig => cls -> sig
+get_face_count = runMethod @"get_face_count"
+
+get_face_edge :: Method "get_face_edge" cls sig => cls -> sig
+get_face_edge = runMethod @"get_face_edge"
+
+get_face_meta :: Method "get_face_meta" cls sig => cls -> sig
+get_face_meta = runMethod @"get_face_meta"
+
+get_face_normal :: Method "get_face_normal" cls sig => cls -> sig
+get_face_normal = runMethod @"get_face_normal"
+
+get_face_vertex :: Method "get_face_vertex" cls sig => cls -> sig
+get_face_vertex = runMethod @"get_face_vertex"
+
+get_faces :: Method "get_faces" cls sig => cls -> sig
+get_faces = runMethod @"get_faces"
+
+get_factor :: Method "get_factor" cls sig => cls -> sig
+get_factor = runMethod @"get_factor"
+
+get_fadein_time :: Method "get_fadein_time" cls sig => cls -> sig
+get_fadein_time = runMethod @"get_fadein_time"
+
+get_fadeout_time :: Method "get_fadeout_time" cls sig => cls -> sig
+get_fadeout_time = runMethod @"get_fadeout_time"
+
+get_fallback :: Method "get_fallback" cls sig => cls -> sig
+get_fallback = runMethod @"get_fallback"
+
+get_fallback_count ::
+                     Method "get_fallback_count" cls sig => cls -> sig
+get_fallback_count = runMethod @"get_fallback_count"
+
+get_fallback_environment ::
+                           Method "get_fallback_environment" cls sig => cls -> sig
+get_fallback_environment = runMethod @"get_fallback_environment"
+
+get_favorites :: Method "get_favorites" cls sig => cls -> sig
+get_favorites = runMethod @"get_favorites"
+
+get_feature :: Method "get_feature" cls sig => cls -> sig
+get_feature = runMethod @"get_feature"
+
+get_feedback :: Method "get_feedback" cls sig => cls -> sig
+get_feedback = runMethod @"get_feedback"
+
+get_feedback_delay_ms ::
+                        Method "get_feedback_delay_ms" cls sig => cls -> sig
+get_feedback_delay_ms = runMethod @"get_feedback_delay_ms"
+
+get_feedback_level_db ::
+                        Method "get_feedback_level_db" cls sig => cls -> sig
+get_feedback_level_db = runMethod @"get_feedback_level_db"
+
+get_feedback_lowpass ::
+                       Method "get_feedback_lowpass" cls sig => cls -> sig
+get_feedback_lowpass = runMethod @"get_feedback_lowpass"
+
+get_file :: Method "get_file" cls sig => cls -> sig
+get_file = runMethod @"get_file"
+
+get_file_count :: Method "get_file_count" cls sig => cls -> sig
+get_file_count = runMethod @"get_file_count"
+
+get_file_import_is_valid ::
+                           Method "get_file_import_is_valid" cls sig => cls -> sig
+get_file_import_is_valid = runMethod @"get_file_import_is_valid"
+
+get_file_path :: Method "get_file_path" cls sig => cls -> sig
+get_file_path = runMethod @"get_file_path"
+
+get_file_script_class_extends ::
+                                Method "get_file_script_class_extends" cls sig => cls -> sig
+get_file_script_class_extends
+  = runMethod @"get_file_script_class_extends"
+
+get_file_script_class_name ::
+                             Method "get_file_script_class_name" cls sig => cls -> sig
+get_file_script_class_name
+  = runMethod @"get_file_script_class_name"
+
+get_file_type :: Method "get_file_type" cls sig => cls -> sig
+get_file_type = runMethod @"get_file_type"
+
+get_filename :: Method "get_filename" cls sig => cls -> sig
+get_filename = runMethod @"get_filename"
+
+get_filesystem :: Method "get_filesystem" cls sig => cls -> sig
+get_filesystem = runMethod @"get_filesystem"
+
+get_filesystem_path ::
+                      Method "get_filesystem_path" cls sig => cls -> sig
+get_filesystem_path = runMethod @"get_filesystem_path"
+
+get_fill_degrees :: Method "get_fill_degrees" cls sig => cls -> sig
+get_fill_degrees = runMethod @"get_fill_degrees"
+
+get_fill_mode :: Method "get_fill_mode" cls sig => cls -> sig
+get_fill_mode = runMethod @"get_fill_mode"
+
+get_filter_ledge_spans ::
+                         Method "get_filter_ledge_spans" cls sig => cls -> sig
+get_filter_ledge_spans = runMethod @"get_filter_ledge_spans"
+
+get_filter_low_hanging_obstacles ::
+                                   Method "get_filter_low_hanging_obstacles" cls sig => cls -> sig
+get_filter_low_hanging_obstacles
+  = runMethod @"get_filter_low_hanging_obstacles"
+
+get_filter_walkable_low_height_spans ::
+                                       Method "get_filter_walkable_low_height_spans" cls sig =>
+                                       cls -> sig
+get_filter_walkable_low_height_spans
+  = runMethod @"get_filter_walkable_low_height_spans"
+
+get_filters :: Method "get_filters" cls sig => cls -> sig
+get_filters = runMethod @"get_filters"
+
+get_final_transform ::
+                      Method "get_final_transform" cls sig => cls -> sig
+get_final_transform = runMethod @"get_final_transform"
+
+get_fixed_column_width ::
+                         Method "get_fixed_column_width" cls sig => cls -> sig
+get_fixed_column_width = runMethod @"get_fixed_column_width"
+
+get_fixed_fps :: Method "get_fixed_fps" cls sig => cls -> sig
+get_fixed_fps = runMethod @"get_fixed_fps"
+
+get_fixed_icon_size ::
+                      Method "get_fixed_icon_size" cls sig => cls -> sig
+get_fixed_icon_size = runMethod @"get_fixed_icon_size"
+
+get_flag :: Method "get_flag" cls sig => cls -> sig
+get_flag = runMethod @"get_flag"
+
+get_flag_x :: Method "get_flag_x" cls sig => cls -> sig
+get_flag_x = runMethod @"get_flag_x"
+
+get_flag_y :: Method "get_flag_y" cls sig => cls -> sig
+get_flag_y = runMethod @"get_flag_y"
+
+get_flag_z :: Method "get_flag_z" cls sig => cls -> sig
+get_flag_z = runMethod @"get_flag_z"
+
+get_flags :: Method "get_flags" cls sig => cls -> sig
+get_flags = runMethod @"get_flags"
+
+get_flatness :: Method "get_flatness" cls sig => cls -> sig
+get_flatness = runMethod @"get_flatness"
+
+get_flip_faces :: Method "get_flip_faces" cls sig => cls -> sig
+get_flip_faces = runMethod @"get_flip_faces"
+
+get_float :: Method "get_float" cls sig => cls -> sig
+get_float = runMethod @"get_float"
+
+get_floor_velocity ::
+                     Method "get_floor_velocity" cls sig => cls -> sig
+get_floor_velocity = runMethod @"get_floor_velocity"
+
+get_focus_mode :: Method "get_focus_mode" cls sig => cls -> sig
+get_focus_mode = runMethod @"get_focus_mode"
+
+get_focus_neighbour ::
+                      Method "get_focus_neighbour" cls sig => cls -> sig
+get_focus_neighbour = runMethod @"get_focus_neighbour"
+
+get_focus_next :: Method "get_focus_next" cls sig => cls -> sig
+get_focus_next = runMethod @"get_focus_next"
+
+get_focus_owner :: Method "get_focus_owner" cls sig => cls -> sig
+get_focus_owner = runMethod @"get_focus_owner"
+
+get_focus_previous ::
+                     Method "get_focus_previous" cls sig => cls -> sig
+get_focus_previous = runMethod @"get_focus_previous"
+
+get_focused_texture ::
+                      Method "get_focused_texture" cls sig => cls -> sig
+get_focused_texture = runMethod @"get_focused_texture"
+
+get_fog_color :: Method "get_fog_color" cls sig => cls -> sig
+get_fog_color = runMethod @"get_fog_color"
+
+get_fog_depth_begin ::
+                      Method "get_fog_depth_begin" cls sig => cls -> sig
+get_fog_depth_begin = runMethod @"get_fog_depth_begin"
+
+get_fog_depth_curve ::
+                      Method "get_fog_depth_curve" cls sig => cls -> sig
+get_fog_depth_curve = runMethod @"get_fog_depth_curve"
+
+get_fog_height_curve ::
+                       Method "get_fog_height_curve" cls sig => cls -> sig
+get_fog_height_curve = runMethod @"get_fog_height_curve"
+
+get_fog_height_max ::
+                     Method "get_fog_height_max" cls sig => cls -> sig
+get_fog_height_max = runMethod @"get_fog_height_max"
+
+get_fog_height_min ::
+                     Method "get_fog_height_min" cls sig => cls -> sig
+get_fog_height_min = runMethod @"get_fog_height_min"
+
+get_fog_sun_amount ::
+                     Method "get_fog_sun_amount" cls sig => cls -> sig
+get_fog_sun_amount = runMethod @"get_fog_sun_amount"
+
+get_fog_sun_color ::
+                    Method "get_fog_sun_color" cls sig => cls -> sig
+get_fog_sun_color = runMethod @"get_fog_sun_color"
+
+get_fog_transmit_curve ::
+                         Method "get_fog_transmit_curve" cls sig => cls -> sig
+get_fog_transmit_curve = runMethod @"get_fog_transmit_curve"
+
+get_follow_smoothing ::
+                       Method "get_follow_smoothing" cls sig => cls -> sig
+get_follow_smoothing = runMethod @"get_follow_smoothing"
+
+get_font :: Method "get_font" cls sig => cls -> sig
+get_font = runMethod @"get_font"
+
+get_font_data :: Method "get_font_data" cls sig => cls -> sig
+get_font_data = runMethod @"get_font_data"
+
+get_font_list :: Method "get_font_list" cls sig => cls -> sig
+get_font_list = runMethod @"get_font_list"
+
+get_font_path :: Method "get_font_path" cls sig => cls -> sig
+get_font_path = runMethod @"get_font_path"
+
+get_format :: Method "get_format" cls sig => cls -> sig
+get_format = runMethod @"get_format"
+
+get_fov :: Method "get_fov" cls sig => cls -> sig
+get_fov = runMethod @"get_fov"
+
+get_fps :: Method "get_fps" cls sig => cls -> sig
+get_fps = runMethod @"get_fps"
+
+get_fractional_delta ::
+                       Method "get_fractional_delta" cls sig => cls -> sig
+get_fractional_delta = runMethod @"get_fractional_delta"
+
+get_frame :: Method "get_frame" cls sig => cls -> sig
+get_frame = runMethod @"get_frame"
+
+get_frame_color :: Method "get_frame_color" cls sig => cls -> sig
+get_frame_color = runMethod @"get_frame_color"
+
+get_frame_count :: Method "get_frame_count" cls sig => cls -> sig
+get_frame_count = runMethod @"get_frame_count"
+
+get_frame_delay :: Method "get_frame_delay" cls sig => cls -> sig
+get_frame_delay = runMethod @"get_frame_delay"
+
+get_frame_texture ::
+                    Method "get_frame_texture" cls sig => cls -> sig
+get_frame_texture = runMethod @"get_frame_texture"
+
+get_frames :: Method "get_frames" cls sig => cls -> sig
+get_frames = runMethod @"get_frames"
+
+get_frames_drawn :: Method "get_frames_drawn" cls sig => cls -> sig
+get_frames_drawn = runMethod @"get_frames_drawn"
+
+get_frames_per_second ::
+                        Method "get_frames_per_second" cls sig => cls -> sig
+get_frames_per_second = runMethod @"get_frames_per_second"
+
+get_friction :: Method "get_friction" cls sig => cls -> sig
+get_friction = runMethod @"get_friction"
+
+get_friction_slip ::
+                    Method "get_friction_slip" cls sig => cls -> sig
+get_friction_slip = runMethod @"get_friction_slip"
+
+get_func :: Method "get_func" cls sig => cls -> sig
+get_func = runMethod @"get_func"
+
+get_function :: Method "get_function" cls sig => cls -> sig
+get_function = runMethod @"get_function"
+
+get_function_node_id ::
+                       Method "get_function_node_id" cls sig => cls -> sig
+get_function_node_id = runMethod @"get_function_node_id"
+
+get_function_scroll ::
+                      Method "get_function_scroll" cls sig => cls -> sig
+get_function_scroll = runMethod @"get_function_scroll"
+
+get_gain :: Method "get_gain" cls sig => cls -> sig
+get_gain = runMethod @"get_gain"
+
+get_gateway :: Method "get_gateway" cls sig => cls -> sig
+get_gateway = runMethod @"get_gateway"
+
+get_gizmo :: Method "get_gizmo" cls sig => cls -> sig
+get_gizmo = runMethod @"get_gizmo"
+
+get_global_canvas_transform ::
+                              Method "get_global_canvas_transform" cls sig => cls -> sig
+get_global_canvas_transform
+  = runMethod @"get_global_canvas_transform"
+
+get_global_constant ::
+                      Method "get_global_constant" cls sig => cls -> sig
+get_global_constant = runMethod @"get_global_constant"
+
+get_global_mouse_position ::
+                            Method "get_global_mouse_position" cls sig => cls -> sig
+get_global_mouse_position = runMethod @"get_global_mouse_position"
+
+get_global_position ::
+                      Method "get_global_position" cls sig => cls -> sig
+get_global_position = runMethod @"get_global_position"
+
+get_global_rect :: Method "get_global_rect" cls sig => cls -> sig
+get_global_rect = runMethod @"get_global_rect"
+
+get_global_rotation ::
+                      Method "get_global_rotation" cls sig => cls -> sig
+get_global_rotation = runMethod @"get_global_rotation"
+
+get_global_rotation_degrees ::
+                              Method "get_global_rotation_degrees" cls sig => cls -> sig
+get_global_rotation_degrees
+  = runMethod @"get_global_rotation_degrees"
+
+get_global_scale :: Method "get_global_scale" cls sig => cls -> sig
+get_global_scale = runMethod @"get_global_scale"
+
+get_global_transform ::
+                       Method "get_global_transform" cls sig => cls -> sig
+get_global_transform = runMethod @"get_global_transform"
+
+get_global_transform_with_canvas ::
+                                   Method "get_global_transform_with_canvas" cls sig => cls -> sig
+get_global_transform_with_canvas
+  = runMethod @"get_global_transform_with_canvas"
+
+get_glow_blend_mode ::
+                      Method "get_glow_blend_mode" cls sig => cls -> sig
+get_glow_blend_mode = runMethod @"get_glow_blend_mode"
+
+get_glow_bloom :: Method "get_glow_bloom" cls sig => cls -> sig
+get_glow_bloom = runMethod @"get_glow_bloom"
+
+get_glow_hdr_bleed_scale ::
+                           Method "get_glow_hdr_bleed_scale" cls sig => cls -> sig
+get_glow_hdr_bleed_scale = runMethod @"get_glow_hdr_bleed_scale"
+
+get_glow_hdr_bleed_threshold ::
+                               Method "get_glow_hdr_bleed_threshold" cls sig => cls -> sig
+get_glow_hdr_bleed_threshold
+  = runMethod @"get_glow_hdr_bleed_threshold"
+
+get_glow_intensity ::
+                     Method "get_glow_intensity" cls sig => cls -> sig
+get_glow_intensity = runMethod @"get_glow_intensity"
+
+get_glow_strength ::
+                    Method "get_glow_strength" cls sig => cls -> sig
+get_glow_strength = runMethod @"get_glow_strength"
+
+get_gradient :: Method "get_gradient" cls sig => cls -> sig
+get_gradient = runMethod @"get_gradient"
+
+get_graph_offset :: Method "get_graph_offset" cls sig => cls -> sig
+get_graph_offset = runMethod @"get_graph_offset"
+
+get_gravity :: Method "get_gravity" cls sig => cls -> sig
+get_gravity = runMethod @"get_gravity"
+
+get_gravity_distance_scale ::
+                             Method "get_gravity_distance_scale" cls sig => cls -> sig
+get_gravity_distance_scale
+  = runMethod @"get_gravity_distance_scale"
+
+get_gravity_scale ::
+                    Method "get_gravity_scale" cls sig => cls -> sig
+get_gravity_scale = runMethod @"get_gravity_scale"
+
+get_gravity_vector ::
+                     Method "get_gravity_vector" cls sig => cls -> sig
+get_gravity_vector = runMethod @"get_gravity_vector"
+
+get_grid_radius :: Method "get_grid_radius" cls sig => cls -> sig
+get_grid_radius = runMethod @"get_grid_radius"
+
+get_ground_bottom_color ::
+                          Method "get_ground_bottom_color" cls sig => cls -> sig
+get_ground_bottom_color = runMethod @"get_ground_bottom_color"
+
+get_ground_curve :: Method "get_ground_curve" cls sig => cls -> sig
+get_ground_curve = runMethod @"get_ground_curve"
+
+get_ground_energy ::
+                    Method "get_ground_energy" cls sig => cls -> sig
+get_ground_energy = runMethod @"get_ground_energy"
+
+get_ground_horizon_color ::
+                           Method "get_ground_horizon_color" cls sig => cls -> sig
+get_ground_horizon_color = runMethod @"get_ground_horizon_color"
+
+get_group_count :: Method "get_group_count" cls sig => cls -> sig
+get_group_count = runMethod @"get_group_count"
+
+get_group_name :: Method "get_group_name" cls sig => cls -> sig
+get_group_name = runMethod @"get_group_name"
+
+get_groups :: Method "get_groups" cls sig => cls -> sig
+get_groups = runMethod @"get_groups"
+
+get_grow :: Method "get_grow" cls sig => cls -> sig
+get_grow = runMethod @"get_grow"
+
+get_grow_begin :: Method "get_grow_begin" cls sig => cls -> sig
+get_grow_begin = runMethod @"get_grow_begin"
+
+get_grow_end :: Method "get_grow_end" cls sig => cls -> sig
+get_grow_end = runMethod @"get_grow_end"
+
+get_gyroscope :: Method "get_gyroscope" cls sig => cls -> sig
+get_gyroscope = runMethod @"get_gyroscope"
+
+get_h_axis_stretch_mode ::
+                          Method "get_h_axis_stretch_mode" cls sig => cls -> sig
+get_h_axis_stretch_mode = runMethod @"get_h_axis_stretch_mode"
+
+get_h_frames :: Method "get_h_frames" cls sig => cls -> sig
+get_h_frames = runMethod @"get_h_frames"
+
+get_h_grow_direction ::
+                       Method "get_h_grow_direction" cls sig => cls -> sig
+get_h_grow_direction = runMethod @"get_h_grow_direction"
+
+get_h_offset :: Method "get_h_offset" cls sig => cls -> sig
+get_h_offset = runMethod @"get_h_offset"
+
+get_h_scroll :: Method "get_h_scroll" cls sig => cls -> sig
+get_h_scroll = runMethod @"get_h_scroll"
+
+get_h_scrollbar :: Method "get_h_scrollbar" cls sig => cls -> sig
+get_h_scrollbar = runMethod @"get_h_scrollbar"
+
+get_h_size_flags :: Method "get_h_size_flags" cls sig => cls -> sig
+get_h_size_flags = runMethod @"get_h_size_flags"
+
+get_half_offset :: Method "get_half_offset" cls sig => cls -> sig
+get_half_offset = runMethod @"get_half_offset"
+
+get_hand :: Method "get_hand" cls sig => cls -> sig
+get_hand = runMethod @"get_hand"
+
+get_handle_name :: Method "get_handle_name" cls sig => cls -> sig
+get_handle_name = runMethod @"get_handle_name"
+
+get_handle_value :: Method "get_handle_value" cls sig => cls -> sig
+get_handle_value = runMethod @"get_handle_value"
+
+get_hdr :: Method "get_hdr" cls sig => cls -> sig
+get_hdr = runMethod @"get_hdr"
+
+get_height :: Method "get_height" cls sig => cls -> sig
+get_height = runMethod @"get_height"
+
+get_hframes :: Method "get_hframes" cls sig => cls -> sig
+get_hframes = runMethod @"get_hframes"
+
+get_hide_on_ok :: Method "get_hide_on_ok" cls sig => cls -> sig
+get_hide_on_ok = runMethod @"get_hide_on_ok"
+
+get_hinting :: Method "get_hinting" cls sig => cls -> sig
+get_hinting = runMethod @"get_hinting"
+
+get_hit_length :: Method "get_hit_length" cls sig => cls -> sig
+get_hit_length = runMethod @"get_hit_length"
+
+get_hmd_transform ::
+                    Method "get_hmd_transform" cls sig => cls -> sig
+get_hmd_transform = runMethod @"get_hmd_transform"
+
+get_hover_texture ::
+                    Method "get_hover_texture" cls sig => cls -> sig
+get_hover_texture = runMethod @"get_hover_texture"
+
+get_hpf :: Method "get_hpf" cls sig => cls -> sig
+get_hpf = runMethod @"get_hpf"
+
+get_http_client_status ::
+                         Method "get_http_client_status" cls sig => cls -> sig
+get_http_client_status = runMethod @"get_http_client_status"
+
+get_icon :: Method "get_icon" cls sig => cls -> sig
+get_icon = runMethod @"get_icon"
+
+get_icon_list :: Method "get_icon_list" cls sig => cls -> sig
+get_icon_list = runMethod @"get_icon_list"
+
+get_icon_max_width ::
+                     Method "get_icon_max_width" cls sig => cls -> sig
+get_icon_max_width = runMethod @"get_icon_max_width"
+
+get_icon_mode :: Method "get_icon_mode" cls sig => cls -> sig
+get_icon_mode = runMethod @"get_icon_mode"
+
+get_icon_region :: Method "get_icon_region" cls sig => cls -> sig
+get_icon_region = runMethod @"get_icon_region"
+
+get_icon_scale :: Method "get_icon_scale" cls sig => cls -> sig
+get_icon_scale = runMethod @"get_icon_scale"
+
+get_id :: Method "get_id" cls sig => cls -> sig
+get_id = runMethod @"get_id"
+
+get_id_path :: Method "get_id_path" cls sig => cls -> sig
+get_id_path = runMethod @"get_id_path"
+
+get_igd_control_url ::
+                      Method "get_igd_control_url" cls sig => cls -> sig
+get_igd_control_url = runMethod @"get_igd_control_url"
+
+get_igd_our_addr :: Method "get_igd_our_addr" cls sig => cls -> sig
+get_igd_our_addr = runMethod @"get_igd_our_addr"
+
+get_igd_service_type ::
+                       Method "get_igd_service_type" cls sig => cls -> sig
+get_igd_service_type = runMethod @"get_igd_service_type"
+
+get_igd_status :: Method "get_igd_status" cls sig => cls -> sig
+get_igd_status = runMethod @"get_igd_status"
+
+get_image :: Method "get_image" cls sig => cls -> sig
+get_image = runMethod @"get_image"
+
+get_image_path :: Method "get_image_path" cls sig => cls -> sig
+get_image_path = runMethod @"get_image_path"
+
+get_import_options ::
+                     Method "get_import_options" cls sig => cls -> sig
+get_import_options = runMethod @"get_import_options"
+
+get_import_order :: Method "get_import_order" cls sig => cls -> sig
+get_import_order = runMethod @"get_import_order"
+
+get_importer_name ::
+                    Method "get_importer_name" cls sig => cls -> sig
+get_importer_name = runMethod @"get_importer_name"
+
+get_incoming_connections ::
+                           Method "get_incoming_connections" cls sig => cls -> sig
+get_incoming_connections = runMethod @"get_incoming_connections"
+
+get_index :: Method "get_index" cls sig => cls -> sig
+get_index = runMethod @"get_index"
+
+get_index_in_skeleton ::
+                        Method "get_index_in_skeleton" cls sig => cls -> sig
+get_index_in_skeleton = runMethod @"get_index_in_skeleton"
+
+get_indexed :: Method "get_indexed" cls sig => cls -> sig
+get_indexed = runMethod @"get_indexed"
+
+get_inertia :: Method "get_inertia" cls sig => cls -> sig
+get_inertia = runMethod @"get_inertia"
+
+get_inheriters_from_class ::
+                            Method "get_inheriters_from_class" cls sig => cls -> sig
+get_inheriters_from_class = runMethod @"get_inheriters_from_class"
+
+get_initial_offset ::
+                     Method "get_initial_offset" cls sig => cls -> sig
+get_initial_offset = runMethod @"get_initial_offset"
+
+get_inner_radius :: Method "get_inner_radius" cls sig => cls -> sig
+get_inner_radius = runMethod @"get_inner_radius"
+
+get_input_buffer_max_size ::
+                            Method "get_input_buffer_max_size" cls sig => cls -> sig
+get_input_buffer_max_size = runMethod @"get_input_buffer_max_size"
+
+get_input_caption ::
+                    Method "get_input_caption" cls sig => cls -> sig
+get_input_caption = runMethod @"get_input_caption"
+
+get_input_count :: Method "get_input_count" cls sig => cls -> sig
+get_input_count = runMethod @"get_input_count"
+
+get_input_name :: Method "get_input_name" cls sig => cls -> sig
+get_input_name = runMethod @"get_input_name"
+
+get_input_port_default_value ::
+                               Method "get_input_port_default_value" cls sig => cls -> sig
+get_input_port_default_value
+  = runMethod @"get_input_port_default_value"
+
+get_instance_base_type ::
+                         Method "get_instance_base_type" cls sig => cls -> sig
+get_instance_base_type = runMethod @"get_instance_base_type"
+
+get_instance_color ::
+                     Method "get_instance_color" cls sig => cls -> sig
+get_instance_color = runMethod @"get_instance_color"
+
+get_instance_count ::
+                     Method "get_instance_count" cls sig => cls -> sig
+get_instance_count = runMethod @"get_instance_count"
+
+get_instance_custom_data ::
+                           Method "get_instance_custom_data" cls sig => cls -> sig
+get_instance_custom_data = runMethod @"get_instance_custom_data"
+
+get_instance_id :: Method "get_instance_id" cls sig => cls -> sig
+get_instance_id = runMethod @"get_instance_id"
+
+get_instance_path ::
+                    Method "get_instance_path" cls sig => cls -> sig
+get_instance_path = runMethod @"get_instance_path"
+
+get_instance_transform ::
+                         Method "get_instance_transform" cls sig => cls -> sig
+get_instance_transform = runMethod @"get_instance_transform"
+
+get_intensity :: Method "get_intensity" cls sig => cls -> sig
+get_intensity = runMethod @"get_intensity"
+
+get_interface :: Method "get_interface" cls sig => cls -> sig
+get_interface = runMethod @"get_interface"
+
+get_interface_count ::
+                      Method "get_interface_count" cls sig => cls -> sig
+get_interface_count = runMethod @"get_interface_count"
+
+get_interfaces :: Method "get_interfaces" cls sig => cls -> sig
+get_interfaces = runMethod @"get_interfaces"
+
+get_interior_ambient ::
+                       Method "get_interior_ambient" cls sig => cls -> sig
+get_interior_ambient = runMethod @"get_interior_ambient"
+
+get_interior_ambient_energy ::
+                              Method "get_interior_ambient_energy" cls sig => cls -> sig
+get_interior_ambient_energy
+  = runMethod @"get_interior_ambient_energy"
+
+get_interior_ambient_probe_contribution ::
+                                          Method "get_interior_ambient_probe_contribution" cls
+                                            sig =>
+                                          cls -> sig
+get_interior_ambient_probe_contribution
+  = runMethod @"get_interior_ambient_probe_contribution"
+
+get_interpolation ::
+                    Method "get_interpolation" cls sig => cls -> sig
+get_interpolation = runMethod @"get_interpolation"
+
+get_intersections ::
+                    Method "get_intersections" cls sig => cls -> sig
+get_intersections = runMethod @"get_intersections"
+
+get_inverse_inertia ::
+                      Method "get_inverse_inertia" cls sig => cls -> sig
+get_inverse_inertia = runMethod @"get_inverse_inertia"
+
+get_inverse_mass :: Method "get_inverse_mass" cls sig => cls -> sig
+get_inverse_mass = runMethod @"get_inverse_mass"
+
+get_invert :: Method "get_invert" cls sig => cls -> sig
+get_invert = runMethod @"get_invert"
+
+get_invert_border ::
+                    Method "get_invert_border" cls sig => cls -> sig
+get_invert_border = runMethod @"get_invert_border"
+
+get_iod :: Method "get_iod" cls sig => cls -> sig
+get_iod = runMethod @"get_iod"
+
+get_is_active :: Method "get_is_active" cls sig => cls -> sig
+get_is_active = runMethod @"get_is_active"
+
+get_is_hemisphere ::
+                    Method "get_is_hemisphere" cls sig => cls -> sig
+get_is_hemisphere = runMethod @"get_is_hemisphere"
+
+get_item_accelerator ::
+                       Method "get_item_accelerator" cls sig => cls -> sig
+get_item_accelerator = runMethod @"get_item_accelerator"
+
+get_item_area_rect ::
+                     Method "get_item_area_rect" cls sig => cls -> sig
+get_item_area_rect = runMethod @"get_item_area_rect"
+
+get_item_at_position ::
+                       Method "get_item_at_position" cls sig => cls -> sig
+get_item_at_position = runMethod @"get_item_at_position"
+
+get_item_count :: Method "get_item_count" cls sig => cls -> sig
+get_item_count = runMethod @"get_item_count"
+
+get_item_cull_mask ::
+                     Method "get_item_cull_mask" cls sig => cls -> sig
+get_item_cull_mask = runMethod @"get_item_cull_mask"
+
+get_item_custom_bg_color ::
+                           Method "get_item_custom_bg_color" cls sig => cls -> sig
+get_item_custom_bg_color = runMethod @"get_item_custom_bg_color"
+
+get_item_custom_fg_color ::
+                           Method "get_item_custom_fg_color" cls sig => cls -> sig
+get_item_custom_fg_color = runMethod @"get_item_custom_fg_color"
+
+get_item_icon :: Method "get_item_icon" cls sig => cls -> sig
+get_item_icon = runMethod @"get_item_icon"
+
+get_item_icon_modulate ::
+                         Method "get_item_icon_modulate" cls sig => cls -> sig
+get_item_icon_modulate = runMethod @"get_item_icon_modulate"
+
+get_item_icon_region ::
+                       Method "get_item_icon_region" cls sig => cls -> sig
+get_item_icon_region = runMethod @"get_item_icon_region"
+
+get_item_id :: Method "get_item_id" cls sig => cls -> sig
+get_item_id = runMethod @"get_item_id"
+
+get_item_index :: Method "get_item_index" cls sig => cls -> sig
+get_item_index = runMethod @"get_item_index"
+
+get_item_list :: Method "get_item_list" cls sig => cls -> sig
+get_item_list = runMethod @"get_item_list"
+
+get_item_mesh :: Method "get_item_mesh" cls sig => cls -> sig
+get_item_mesh = runMethod @"get_item_mesh"
+
+get_item_metadata ::
+                    Method "get_item_metadata" cls sig => cls -> sig
+get_item_metadata = runMethod @"get_item_metadata"
+
+get_item_name :: Method "get_item_name" cls sig => cls -> sig
+get_item_name = runMethod @"get_item_name"
+
+get_item_navmesh :: Method "get_item_navmesh" cls sig => cls -> sig
+get_item_navmesh = runMethod @"get_item_navmesh"
+
+get_item_preview :: Method "get_item_preview" cls sig => cls -> sig
+get_item_preview = runMethod @"get_item_preview"
+
+get_item_rect :: Method "get_item_rect" cls sig => cls -> sig
+get_item_rect = runMethod @"get_item_rect"
+
+get_item_shadow_cull_mask ::
+                            Method "get_item_shadow_cull_mask" cls sig => cls -> sig
+get_item_shadow_cull_mask = runMethod @"get_item_shadow_cull_mask"
+
+get_item_shapes :: Method "get_item_shapes" cls sig => cls -> sig
+get_item_shapes = runMethod @"get_item_shapes"
+
+get_item_shortcut ::
+                    Method "get_item_shortcut" cls sig => cls -> sig
+get_item_shortcut = runMethod @"get_item_shortcut"
+
+get_item_submenu :: Method "get_item_submenu" cls sig => cls -> sig
+get_item_submenu = runMethod @"get_item_submenu"
+
+get_item_text :: Method "get_item_text" cls sig => cls -> sig
+get_item_text = runMethod @"get_item_text"
+
+get_item_tooltip :: Method "get_item_tooltip" cls sig => cls -> sig
+get_item_tooltip = runMethod @"get_item_tooltip"
+
+get_iterations_per_second ::
+                            Method "get_iterations_per_second" cls sig => cls -> sig
+get_iterations_per_second = runMethod @"get_iterations_per_second"
+
+get_joint_mode :: Method "get_joint_mode" cls sig => cls -> sig
+get_joint_mode = runMethod @"get_joint_mode"
+
+get_joint_offset :: Method "get_joint_offset" cls sig => cls -> sig
+get_joint_offset = runMethod @"get_joint_offset"
+
+get_joint_type :: Method "get_joint_type" cls sig => cls -> sig
+get_joint_type = runMethod @"get_joint_type"
+
+get_joy_axis :: Method "get_joy_axis" cls sig => cls -> sig
+get_joy_axis = runMethod @"get_joy_axis"
+
+get_joy_axis_index_from_string ::
+                                 Method "get_joy_axis_index_from_string" cls sig => cls -> sig
+get_joy_axis_index_from_string
+  = runMethod @"get_joy_axis_index_from_string"
+
+get_joy_axis_string ::
+                      Method "get_joy_axis_string" cls sig => cls -> sig
+get_joy_axis_string = runMethod @"get_joy_axis_string"
+
+get_joy_button_index_from_string ::
+                                   Method "get_joy_button_index_from_string" cls sig => cls -> sig
+get_joy_button_index_from_string
+  = runMethod @"get_joy_button_index_from_string"
+
+get_joy_button_string ::
+                        Method "get_joy_button_string" cls sig => cls -> sig
+get_joy_button_string = runMethod @"get_joy_button_string"
+
+get_joy_guid :: Method "get_joy_guid" cls sig => cls -> sig
+get_joy_guid = runMethod @"get_joy_guid"
+
+get_joy_id :: Method "get_joy_id" cls sig => cls -> sig
+get_joy_id = runMethod @"get_joy_id"
+
+get_joy_name :: Method "get_joy_name" cls sig => cls -> sig
+get_joy_name = runMethod @"get_joy_name"
+
+get_joy_vibration_duration ::
+                             Method "get_joy_vibration_duration" cls sig => cls -> sig
+get_joy_vibration_duration
+  = runMethod @"get_joy_vibration_duration"
+
+get_joy_vibration_strength ::
+                             Method "get_joy_vibration_strength" cls sig => cls -> sig
+get_joy_vibration_strength
+  = runMethod @"get_joy_vibration_strength"
+
+get_joystick_axis ::
+                    Method "get_joystick_axis" cls sig => cls -> sig
+get_joystick_axis = runMethod @"get_joystick_axis"
+
+get_joystick_id :: Method "get_joystick_id" cls sig => cls -> sig
+get_joystick_id = runMethod @"get_joystick_id"
+
+get_k1 :: Method "get_k1" cls sig => cls -> sig
+get_k1 = runMethod @"get_k1"
+
+get_k2 :: Method "get_k2" cls sig => cls -> sig
+get_k2 = runMethod @"get_k2"
+
+get_keep_3d_linear ::
+                     Method "get_keep_3d_linear" cls sig => cls -> sig
+get_keep_3d_linear = runMethod @"get_keep_3d_linear"
+
+get_keep_aspect_mode ::
+                       Method "get_keep_aspect_mode" cls sig => cls -> sig
+get_keep_aspect_mode = runMethod @"get_keep_aspect_mode"
+
+get_keep_hf_hz :: Method "get_keep_hf_hz" cls sig => cls -> sig
+get_keep_hf_hz = runMethod @"get_keep_hf_hz"
+
+get_kerning_pair :: Method "get_kerning_pair" cls sig => cls -> sig
+get_kerning_pair = runMethod @"get_kerning_pair"
+
+get_keyword_color ::
+                    Method "get_keyword_color" cls sig => cls -> sig
+get_keyword_color = runMethod @"get_keyword_color"
+
+get_label :: Method "get_label" cls sig => cls -> sig
+get_label = runMethod @"get_label"
+
+get_lacunarity :: Method "get_lacunarity" cls sig => cls -> sig
+get_lacunarity = runMethod @"get_lacunarity"
+
+get_last_commit_usec ::
+                       Method "get_last_commit_usec" cls sig => cls -> sig
+get_last_commit_usec = runMethod @"get_last_commit_usec"
+
+get_last_frame_usec ::
+                      Method "get_last_frame_usec" cls sig => cls -> sig
+get_last_frame_usec = runMethod @"get_last_frame_usec"
+
+get_last_mouse_speed ::
+                       Method "get_last_mouse_speed" cls sig => cls -> sig
+get_last_mouse_speed = runMethod @"get_last_mouse_speed"
+
+get_last_packet_channel ::
+                          Method "get_last_packet_channel" cls sig => cls -> sig
+get_last_packet_channel = runMethod @"get_last_packet_channel"
+
+get_last_process_usec ::
+                        Method "get_last_process_usec" cls sig => cls -> sig
+get_last_process_usec = runMethod @"get_last_process_usec"
+
+get_last_unused_item_id ::
+                          Method "get_last_unused_item_id" cls sig => cls -> sig
+get_last_unused_item_id = runMethod @"get_last_unused_item_id"
+
+get_last_unused_tile_id ::
+                          Method "get_last_unused_tile_id" cls sig => cls -> sig
+get_last_unused_tile_id = runMethod @"get_last_unused_tile_id"
+
+get_latin_keyboard_variant ::
+                             Method "get_latin_keyboard_variant" cls sig => cls -> sig
+get_latin_keyboard_variant
+  = runMethod @"get_latin_keyboard_variant"
+
+get_layer :: Method "get_layer" cls sig => cls -> sig
+get_layer = runMethod @"get_layer"
+
+get_layer_data :: Method "get_layer_data" cls sig => cls -> sig
+get_layer_data = runMethod @"get_layer_data"
+
+get_layer_mask :: Method "get_layer_mask" cls sig => cls -> sig
+get_layer_mask = runMethod @"get_layer_mask"
+
+get_layer_mask_bit ::
+                     Method "get_layer_mask_bit" cls sig => cls -> sig
+get_layer_mask_bit = runMethod @"get_layer_mask_bit"
+
+get_layer_range_max ::
+                      Method "get_layer_range_max" cls sig => cls -> sig
+get_layer_range_max = runMethod @"get_layer_range_max"
+
+get_layer_range_min ::
+                      Method "get_layer_range_min" cls sig => cls -> sig
+get_layer_range_min = runMethod @"get_layer_range_min"
+
+get_left_to_right ::
+                    Method "get_left_to_right" cls sig => cls -> sig
+get_left_to_right = runMethod @"get_left_to_right"
+
+get_len :: Method "get_len" cls sig => cls -> sig
+get_len = runMethod @"get_len"
+
+get_length :: Method "get_length" cls sig => cls -> sig
+get_length = runMethod @"get_length"
+
+get_library :: Method "get_library" cls sig => cls -> sig
+get_library = runMethod @"get_library"
+
+get_license_info :: Method "get_license_info" cls sig => cls -> sig
+get_license_info = runMethod @"get_license_info"
+
+get_license_text :: Method "get_license_text" cls sig => cls -> sig
+get_license_text = runMethod @"get_license_text"
+
+get_lifetime :: Method "get_lifetime" cls sig => cls -> sig
+get_lifetime = runMethod @"get_lifetime"
+
+get_light_data :: Method "get_light_data" cls sig => cls -> sig
+get_light_data = runMethod @"get_light_data"
+
+get_light_mask :: Method "get_light_mask" cls sig => cls -> sig
+get_light_mask = runMethod @"get_light_mask"
+
+get_light_mode :: Method "get_light_mode" cls sig => cls -> sig
+get_light_mode = runMethod @"get_light_mode"
+
+get_lightmap_size_hint ::
+                         Method "get_lightmap_size_hint" cls sig => cls -> sig
+get_lightmap_size_hint = runMethod @"get_lightmap_size_hint"
+
+get_limit :: Method "get_limit" cls sig => cls -> sig
+get_limit = runMethod @"get_limit"
+
+get_limit_begin :: Method "get_limit_begin" cls sig => cls -> sig
+get_limit_begin = runMethod @"get_limit_begin"
+
+get_limit_end :: Method "get_limit_end" cls sig => cls -> sig
+get_limit_end = runMethod @"get_limit_end"
+
+get_line :: Method "get_line" cls sig => cls -> sig
+get_line = runMethod @"get_line"
+
+get_line_count :: Method "get_line_count" cls sig => cls -> sig
+get_line_count = runMethod @"get_line_count"
+
+get_line_edit :: Method "get_line_edit" cls sig => cls -> sig
+get_line_edit = runMethod @"get_line_edit"
+
+get_line_height :: Method "get_line_height" cls sig => cls -> sig
+get_line_height = runMethod @"get_line_height"
+
+get_line_width :: Method "get_line_width" cls sig => cls -> sig
+get_line_width = runMethod @"get_line_width"
+
+get_linear_damp :: Method "get_linear_damp" cls sig => cls -> sig
+get_linear_damp = runMethod @"get_linear_damp"
+
+get_linear_stiffness ::
+                       Method "get_linear_stiffness" cls sig => cls -> sig
+get_linear_stiffness = runMethod @"get_linear_stiffness"
+
+get_linear_velocity ::
+                      Method "get_linear_velocity" cls sig => cls -> sig
+get_linear_velocity = runMethod @"get_linear_velocity"
+
+get_lines_skipped ::
+                    Method "get_lines_skipped" cls sig => cls -> sig
+get_lines_skipped = runMethod @"get_lines_skipped"
+
+get_listener_transform ::
+                         Method "get_listener_transform" cls sig => cls -> sig
+get_listener_transform = runMethod @"get_listener_transform"
+
+get_load_path :: Method "get_load_path" cls sig => cls -> sig
+get_load_path = runMethod @"get_load_path"
+
+get_local_addresses ::
+                      Method "get_local_addresses" cls sig => cls -> sig
+get_local_addresses = runMethod @"get_local_addresses"
+
+get_local_mouse_position ::
+                           Method "get_local_mouse_position" cls sig => cls -> sig
+get_local_mouse_position = runMethod @"get_local_mouse_position"
+
+get_local_scene :: Method "get_local_scene" cls sig => cls -> sig
+get_local_scene = runMethod @"get_local_scene"
+
+get_local_shape :: Method "get_local_shape" cls sig => cls -> sig
+get_local_shape = runMethod @"get_local_shape"
+
+get_locale :: Method "get_locale" cls sig => cls -> sig
+get_locale = runMethod @"get_locale"
+
+get_locale_name :: Method "get_locale_name" cls sig => cls -> sig
+get_locale_name = runMethod @"get_locale_name"
+
+get_lod_max_distance ::
+                       Method "get_lod_max_distance" cls sig => cls -> sig
+get_lod_max_distance = runMethod @"get_lod_max_distance"
+
+get_lod_max_hysteresis ::
+                         Method "get_lod_max_hysteresis" cls sig => cls -> sig
+get_lod_max_hysteresis = runMethod @"get_lod_max_hysteresis"
+
+get_lod_min_distance ::
+                       Method "get_lod_min_distance" cls sig => cls -> sig
+get_lod_min_distance = runMethod @"get_lod_min_distance"
+
+get_lod_min_hysteresis ::
+                         Method "get_lod_min_hysteresis" cls sig => cls -> sig
+get_lod_min_hysteresis = runMethod @"get_lod_min_hysteresis"
+
+get_lookahead :: Method "get_lookahead" cls sig => cls -> sig
+get_lookahead = runMethod @"get_lookahead"
+
+get_loop_begin :: Method "get_loop_begin" cls sig => cls -> sig
+get_loop_begin = runMethod @"get_loop_begin"
+
+get_loop_end :: Method "get_loop_end" cls sig => cls -> sig
+get_loop_end = runMethod @"get_loop_end"
+
+get_loop_mode :: Method "get_loop_mode" cls sig => cls -> sig
+get_loop_mode = runMethod @"get_loop_mode"
+
+get_loop_offset :: Method "get_loop_offset" cls sig => cls -> sig
+get_loop_offset = runMethod @"get_loop_offset"
+
+get_lossy_storage_quality ::
+                            Method "get_lossy_storage_quality" cls sig => cls -> sig
+get_lossy_storage_quality = runMethod @"get_lossy_storage_quality"
+
+get_magnet_position ::
+                      Method "get_magnet_position" cls sig => cls -> sig
+get_magnet_position = runMethod @"get_magnet_position"
+
+get_magnetometer :: Method "get_magnetometer" cls sig => cls -> sig
+get_magnetometer = runMethod @"get_magnetometer"
+
+get_main_loop :: Method "get_main_loop" cls sig => cls -> sig
+get_main_loop = runMethod @"get_main_loop"
+
+get_margin :: Method "get_margin" cls sig => cls -> sig
+get_margin = runMethod @"get_margin"
+
+get_margin_size :: Method "get_margin_size" cls sig => cls -> sig
+get_margin_size = runMethod @"get_margin_size"
+
+get_mass :: Method "get_mass" cls sig => cls -> sig
+get_mass = runMethod @"get_mass"
+
+get_master_player ::
+                    Method "get_master_player" cls sig => cls -> sig
+get_master_player = runMethod @"get_master_player"
+
+get_material :: Method "get_material" cls sig => cls -> sig
+get_material = runMethod @"get_material"
+
+get_material_override ::
+                        Method "get_material_override" cls sig => cls -> sig
+get_material_override = runMethod @"get_material_override"
+
+get_math_constant ::
+                    Method "get_math_constant" cls sig => cls -> sig
+get_math_constant = runMethod @"get_math_constant"
+
+get_max :: Method "get_max" cls sig => cls -> sig
+get_max = runMethod @"get_max"
+
+get_max_columns :: Method "get_max_columns" cls sig => cls -> sig
+get_max_columns = runMethod @"get_max_columns"
+
+get_max_contacts_reported ::
+                            Method "get_max_contacts_reported" cls sig => cls -> sig
+get_max_contacts_reported = runMethod @"get_max_contacts_reported"
+
+get_max_db :: Method "get_max_db" cls sig => cls -> sig
+get_max_db = runMethod @"get_max_db"
+
+get_max_distance :: Method "get_max_distance" cls sig => cls -> sig
+get_max_distance = runMethod @"get_max_distance"
+
+get_max_iterations ::
+                     Method "get_max_iterations" cls sig => cls -> sig
+get_max_iterations = runMethod @"get_max_iterations"
+
+get_max_length :: Method "get_max_length" cls sig => cls -> sig
+get_max_length = runMethod @"get_max_length"
+
+get_max_lines_visible ::
+                        Method "get_max_lines_visible" cls sig => cls -> sig
+get_max_lines_visible = runMethod @"get_max_lines_visible"
+
+get_max_redirects ::
+                    Method "get_max_redirects" cls sig => cls -> sig
+get_max_redirects = runMethod @"get_max_redirects"
+
+get_max_space :: Method "get_max_space" cls sig => cls -> sig
+get_max_space = runMethod @"get_max_space"
+
+get_max_text_lines ::
+                     Method "get_max_text_lines" cls sig => cls -> sig
+get_max_text_lines = runMethod @"get_max_text_lines"
+
+get_max_value :: Method "get_max_value" cls sig => cls -> sig
+get_max_value = runMethod @"get_max_value"
+
+get_md5 :: Method "get_md5" cls sig => cls -> sig
+get_md5 = runMethod @"get_md5"
+
+get_menu :: Method "get_menu" cls sig => cls -> sig
+get_menu = runMethod @"get_menu"
+
+get_mesh :: Method "get_mesh" cls sig => cls -> sig
+get_mesh = runMethod @"get_mesh"
+
+get_mesh_arrays :: Method "get_mesh_arrays" cls sig => cls -> sig
+get_mesh_arrays = runMethod @"get_mesh_arrays"
+
+get_mesh_library :: Method "get_mesh_library" cls sig => cls -> sig
+get_mesh_library = runMethod @"get_mesh_library"
+
+get_meshes :: Method "get_meshes" cls sig => cls -> sig
+get_meshes = runMethod @"get_meshes"
+
+get_message :: Method "get_message" cls sig => cls -> sig
+get_message = runMethod @"get_message"
+
+get_message_count ::
+                    Method "get_message_count" cls sig => cls -> sig
+get_message_count = runMethod @"get_message_count"
+
+get_message_list :: Method "get_message_list" cls sig => cls -> sig
+get_message_list = runMethod @"get_message_list"
+
+get_meta :: Method "get_meta" cls sig => cls -> sig
+get_meta = runMethod @"get_meta"
+
+get_meta_list :: Method "get_meta_list" cls sig => cls -> sig
+get_meta_list = runMethod @"get_meta_list"
+
+get_metadata :: Method "get_metadata" cls sig => cls -> sig
+get_metadata = runMethod @"get_metadata"
+
+get_metakey :: Method "get_metakey" cls sig => cls -> sig
+get_metakey = runMethod @"get_metakey"
+
+get_metallic :: Method "get_metallic" cls sig => cls -> sig
+get_metallic = runMethod @"get_metallic"
+
+get_metallic_texture_channel ::
+                               Method "get_metallic_texture_channel" cls sig => cls -> sig
+get_metallic_texture_channel
+  = runMethod @"get_metallic_texture_channel"
+
+get_method_documentation ::
+                           Method "get_method_documentation" cls sig => cls -> sig
+get_method_documentation = runMethod @"get_method_documentation"
+
+get_method_list :: Method "get_method_list" cls sig => cls -> sig
+get_method_list = runMethod @"get_method_list"
+
+get_mid_height :: Method "get_mid_height" cls sig => cls -> sig
+get_mid_height = runMethod @"get_mid_height"
+
+get_min :: Method "get_min" cls sig => cls -> sig
+get_min = runMethod @"get_min"
+
+get_min_distance :: Method "get_min_distance" cls sig => cls -> sig
+get_min_distance = runMethod @"get_min_distance"
+
+get_min_space :: Method "get_min_space" cls sig => cls -> sig
+get_min_space = runMethod @"get_min_space"
+
+get_min_value :: Method "get_min_value" cls sig => cls -> sig
+get_min_value = runMethod @"get_min_value"
+
+get_minimum_size :: Method "get_minimum_size" cls sig => cls -> sig
+get_minimum_size = runMethod @"get_minimum_size"
+
+get_mipmap_offset ::
+                    Method "get_mipmap_offset" cls sig => cls -> sig
+get_mipmap_offset = runMethod @"get_mipmap_offset"
+
+get_mirroring :: Method "get_mirroring" cls sig => cls -> sig
+get_mirroring = runMethod @"get_mirroring"
+
+get_mix :: Method "get_mix" cls sig => cls -> sig
+get_mix = runMethod @"get_mix"
+
+get_mix_mode :: Method "get_mix_mode" cls sig => cls -> sig
+get_mix_mode = runMethod @"get_mix_mode"
+
+get_mix_rate :: Method "get_mix_rate" cls sig => cls -> sig
+get_mix_rate = runMethod @"get_mix_rate"
+
+get_mix_target :: Method "get_mix_target" cls sig => cls -> sig
+get_mix_target = runMethod @"get_mix_target"
+
+get_modal_stack_top ::
+                      Method "get_modal_stack_top" cls sig => cls -> sig
+get_modal_stack_top = runMethod @"get_modal_stack_top"
+
+get_mode :: Method "get_mode" cls sig => cls -> sig
+get_mode = runMethod @"get_mode"
+
+get_model_name :: Method "get_model_name" cls sig => cls -> sig
+get_model_name = runMethod @"get_model_name"
+
+get_modified_time ::
+                    Method "get_modified_time" cls sig => cls -> sig
+get_modified_time = runMethod @"get_modified_time"
+
+get_modulate :: Method "get_modulate" cls sig => cls -> sig
+get_modulate = runMethod @"get_modulate"
+
+get_monitor :: Method "get_monitor" cls sig => cls -> sig
+get_monitor = runMethod @"get_monitor"
+
+get_motion :: Method "get_motion" cls sig => cls -> sig
+get_motion = runMethod @"get_motion"
+
+get_motion_offset ::
+                    Method "get_motion_offset" cls sig => cls -> sig
+get_motion_offset = runMethod @"get_motion_offset"
+
+get_motion_remainder ::
+                       Method "get_motion_remainder" cls sig => cls -> sig
+get_motion_remainder = runMethod @"get_motion_remainder"
+
+get_motion_scale :: Method "get_motion_scale" cls sig => cls -> sig
+get_motion_scale = runMethod @"get_motion_scale"
+
+get_mouse_button_mask ::
+                        Method "get_mouse_button_mask" cls sig => cls -> sig
+get_mouse_button_mask = runMethod @"get_mouse_button_mask"
+
+get_mouse_filter :: Method "get_mouse_filter" cls sig => cls -> sig
+get_mouse_filter = runMethod @"get_mouse_filter"
+
+get_mouse_mode :: Method "get_mouse_mode" cls sig => cls -> sig
+get_mouse_mode = runMethod @"get_mouse_mode"
+
+get_mouse_position ::
+                     Method "get_mouse_position" cls sig => cls -> sig
+get_mouse_position = runMethod @"get_mouse_position"
+
+get_msaa :: Method "get_msaa" cls sig => cls -> sig
+get_msaa = runMethod @"get_msaa"
+
+get_multimesh :: Method "get_multimesh" cls sig => cls -> sig
+get_multimesh = runMethod @"get_multimesh"
+
+get_multiplayer :: Method "get_multiplayer" cls sig => cls -> sig
+get_multiplayer = runMethod @"get_multiplayer"
+
+get_name :: Method "get_name" cls sig => cls -> sig
+get_name = runMethod @"get_name"
+
+get_named_attribute_value ::
+                            Method "get_named_attribute_value" cls sig => cls -> sig
+get_named_attribute_value = runMethod @"get_named_attribute_value"
+
+get_named_attribute_value_safe ::
+                                 Method "get_named_attribute_value_safe" cls sig => cls -> sig
+get_named_attribute_value_safe
+  = runMethod @"get_named_attribute_value_safe"
+
+get_names :: Method "get_names" cls sig => cls -> sig
+get_names = runMethod @"get_names"
+
+get_navigation_mesh ::
+                      Method "get_navigation_mesh" cls sig => cls -> sig
+get_navigation_mesh = runMethod @"get_navigation_mesh"
+
+get_navigation_polygon ::
+                         Method "get_navigation_polygon" cls sig => cls -> sig
+get_navigation_polygon = runMethod @"get_navigation_polygon"
+
+get_network_connected_peers ::
+                              Method "get_network_connected_peers" cls sig => cls -> sig
+get_network_connected_peers
+  = runMethod @"get_network_connected_peers"
+
+get_network_master ::
+                     Method "get_network_master" cls sig => cls -> sig
+get_network_master = runMethod @"get_network_master"
+
+get_network_peer :: Method "get_network_peer" cls sig => cls -> sig
+get_network_peer = runMethod @"get_network_peer"
+
+get_network_unique_id ::
+                        Method "get_network_unique_id" cls sig => cls -> sig
+get_network_unique_id = runMethod @"get_network_unique_id"
+
+get_next :: Method "get_next" cls sig => cls -> sig
+get_next = runMethod @"get_next"
+
+get_next_pass :: Method "get_next_pass" cls sig => cls -> sig
+get_next_pass = runMethod @"get_next_pass"
+
+get_next_selected ::
+                    Method "get_next_selected" cls sig => cls -> sig
+get_next_selected = runMethod @"get_next_selected"
+
+get_next_visible :: Method "get_next_visible" cls sig => cls -> sig
+get_next_visible = runMethod @"get_next_visible"
+
+get_nine_patch_stretch ::
+                         Method "get_nine_patch_stretch" cls sig => cls -> sig
+get_nine_patch_stretch = runMethod @"get_nine_patch_stretch"
+
+get_node :: Method "get_node" cls sig => cls -> sig
+get_node = runMethod @"get_node"
+
+get_node_a :: Method "get_node_a" cls sig => cls -> sig
+get_node_a = runMethod @"get_node_a"
+
+get_node_and_resource ::
+                        Method "get_node_and_resource" cls sig => cls -> sig
+get_node_and_resource = runMethod @"get_node_and_resource"
+
+get_node_b :: Method "get_node_b" cls sig => cls -> sig
+get_node_b = runMethod @"get_node_b"
+
+get_node_connections ::
+                       Method "get_node_connections" cls sig => cls -> sig
+get_node_connections = runMethod @"get_node_connections"
+
+get_node_count :: Method "get_node_count" cls sig => cls -> sig
+get_node_count = runMethod @"get_node_count"
+
+get_node_data :: Method "get_node_data" cls sig => cls -> sig
+get_node_data = runMethod @"get_node_data"
+
+get_node_groups :: Method "get_node_groups" cls sig => cls -> sig
+get_node_groups = runMethod @"get_node_groups"
+
+get_node_index :: Method "get_node_index" cls sig => cls -> sig
+get_node_index = runMethod @"get_node_index"
+
+get_node_instance ::
+                    Method "get_node_instance" cls sig => cls -> sig
+get_node_instance = runMethod @"get_node_instance"
+
+get_node_instance_placeholder ::
+                                Method "get_node_instance_placeholder" cls sig => cls -> sig
+get_node_instance_placeholder
+  = runMethod @"get_node_instance_placeholder"
+
+get_node_list :: Method "get_node_list" cls sig => cls -> sig
+get_node_list = runMethod @"get_node_list"
+
+get_node_name :: Method "get_node_name" cls sig => cls -> sig
+get_node_name = runMethod @"get_node_name"
+
+get_node_offset :: Method "get_node_offset" cls sig => cls -> sig
+get_node_offset = runMethod @"get_node_offset"
+
+get_node_owner_path ::
+                      Method "get_node_owner_path" cls sig => cls -> sig
+get_node_owner_path = runMethod @"get_node_owner_path"
+
+get_node_path :: Method "get_node_path" cls sig => cls -> sig
+get_node_path = runMethod @"get_node_path"
+
+get_node_position ::
+                    Method "get_node_position" cls sig => cls -> sig
+get_node_position = runMethod @"get_node_position"
+
+get_node_property_count ::
+                          Method "get_node_property_count" cls sig => cls -> sig
+get_node_property_count = runMethod @"get_node_property_count"
+
+get_node_property_name ::
+                         Method "get_node_property_name" cls sig => cls -> sig
+get_node_property_name = runMethod @"get_node_property_name"
+
+get_node_property_value ::
+                          Method "get_node_property_value" cls sig => cls -> sig
+get_node_property_value = runMethod @"get_node_property_value"
+
+get_node_type :: Method "get_node_type" cls sig => cls -> sig
+get_node_type = runMethod @"get_node_type"
+
+get_nodes_in_group ::
+                     Method "get_nodes_in_group" cls sig => cls -> sig
+get_nodes_in_group = runMethod @"get_nodes_in_group"
+
+get_noise :: Method "get_noise" cls sig => cls -> sig
+get_noise = runMethod @"get_noise"
+
+get_noise_2d :: Method "get_noise_2d" cls sig => cls -> sig
+get_noise_2d = runMethod @"get_noise_2d"
+
+get_noise_2dv :: Method "get_noise_2dv" cls sig => cls -> sig
+get_noise_2dv = runMethod @"get_noise_2dv"
+
+get_noise_3d :: Method "get_noise_3d" cls sig => cls -> sig
+get_noise_3d = runMethod @"get_noise_3d"
+
+get_noise_3dv :: Method "get_noise_3dv" cls sig => cls -> sig
+get_noise_3dv = runMethod @"get_noise_3dv"
+
+get_noise_4d :: Method "get_noise_4d" cls sig => cls -> sig
+get_noise_4d = runMethod @"get_noise_4d"
+
+get_normal :: Method "get_normal" cls sig => cls -> sig
+get_normal = runMethod @"get_normal"
+
+get_normal_bias :: Method "get_normal_bias" cls sig => cls -> sig
+get_normal_bias = runMethod @"get_normal_bias"
+
+get_normal_map :: Method "get_normal_map" cls sig => cls -> sig
+get_normal_map = runMethod @"get_normal_map"
+
+get_normal_scale :: Method "get_normal_scale" cls sig => cls -> sig
+get_normal_scale = runMethod @"get_normal_scale"
+
+get_normal_texture ::
+                     Method "get_normal_texture" cls sig => cls -> sig
+get_normal_texture = runMethod @"get_normal_texture"
+
+get_normalmap :: Method "get_normalmap" cls sig => cls -> sig
+get_normalmap = runMethod @"get_normalmap"
+
+get_object_id :: Method "get_object_id" cls sig => cls -> sig
+get_object_id = runMethod @"get_object_id"
+
+get_occluder_light_mask ::
+                          Method "get_occluder_light_mask" cls sig => cls -> sig
+get_occluder_light_mask = runMethod @"get_occluder_light_mask"
+
+get_occluder_polygon ::
+                       Method "get_occluder_polygon" cls sig => cls -> sig
+get_occluder_polygon = runMethod @"get_occluder_polygon"
+
+get_octant_size :: Method "get_octant_size" cls sig => cls -> sig
+get_octant_size = runMethod @"get_octant_size"
+
+get_octaves :: Method "get_octaves" cls sig => cls -> sig
+get_octaves = runMethod @"get_octaves"
+
+get_octree :: Method "get_octree" cls sig => cls -> sig
+get_octree = runMethod @"get_octree"
+
+get_offset :: Method "get_offset" cls sig => cls -> sig
+get_offset = runMethod @"get_offset"
+
+get_offset_buttons_visible ::
+                             Method "get_offset_buttons_visible" cls sig => cls -> sig
+get_offset_buttons_visible
+  = runMethod @"get_offset_buttons_visible"
+
+get_offsets :: Method "get_offsets" cls sig => cls -> sig
+get_offsets = runMethod @"get_offsets"
+
+get_ok :: Method "get_ok" cls sig => cls -> sig
+get_ok = runMethod @"get_ok"
+
+get_one_shot :: Method "get_one_shot" cls sig => cls -> sig
+get_one_shot = runMethod @"get_one_shot"
+
+get_opacity :: Method "get_opacity" cls sig => cls -> sig
+get_opacity = runMethod @"get_opacity"
+
+get_open_scenes :: Method "get_open_scenes" cls sig => cls -> sig
+get_open_scenes = runMethod @"get_open_scenes"
+
+get_open_scripts :: Method "get_open_scripts" cls sig => cls -> sig
+get_open_scripts = runMethod @"get_open_scripts"
+
+get_operation :: Method "get_operation" cls sig => cls -> sig
+get_operation = runMethod @"get_operation"
+
+get_operator :: Method "get_operator" cls sig => cls -> sig
+get_operator = runMethod @"get_operator"
+
+get_option_visibility ::
+                        Method "get_option_visibility" cls sig => cls -> sig
+get_option_visibility = runMethod @"get_option_visibility"
+
+get_order :: Method "get_order" cls sig => cls -> sig
+get_order = runMethod @"get_order"
+
+get_orientation :: Method "get_orientation" cls sig => cls -> sig
+get_orientation = runMethod @"get_orientation"
+
+get_origin_offset ::
+                    Method "get_origin_offset" cls sig => cls -> sig
+get_origin_offset = runMethod @"get_origin_offset"
+
+get_out_of_range_mode ::
+                        Method "get_out_of_range_mode" cls sig => cls -> sig
+get_out_of_range_mode = runMethod @"get_out_of_range_mode"
+
+get_outer_radius :: Method "get_outer_radius" cls sig => cls -> sig
+get_outer_radius = runMethod @"get_outer_radius"
+
+get_outline :: Method "get_outline" cls sig => cls -> sig
+get_outline = runMethod @"get_outline"
+
+get_outline_color ::
+                    Method "get_outline_color" cls sig => cls -> sig
+get_outline_color = runMethod @"get_outline_color"
+
+get_outline_count ::
+                    Method "get_outline_count" cls sig => cls -> sig
+get_outline_count = runMethod @"get_outline_count"
+
+get_outline_size :: Method "get_outline_size" cls sig => cls -> sig
+get_outline_size = runMethod @"get_outline_size"
+
+get_output_buffer_max_size ::
+                             Method "get_output_buffer_max_size" cls sig => cls -> sig
+get_output_buffer_max_size
+  = runMethod @"get_output_buffer_max_size"
+
+get_output_port_for_preview ::
+                              Method "get_output_port_for_preview" cls sig => cls -> sig
+get_output_port_for_preview
+  = runMethod @"get_output_port_for_preview"
+
+get_over_texture :: Method "get_over_texture" cls sig => cls -> sig
+get_over_texture = runMethod @"get_over_texture"
+
+get_overlapping_areas ::
+                        Method "get_overlapping_areas" cls sig => cls -> sig
+get_overlapping_areas = runMethod @"get_overlapping_areas"
+
+get_overlapping_bodies ::
+                         Method "get_overlapping_bodies" cls sig => cls -> sig
+get_overlapping_bodies = runMethod @"get_overlapping_bodies"
+
+get_overlay :: Method "get_overlay" cls sig => cls -> sig
+get_overlay = runMethod @"get_overlay"
+
+get_oversample :: Method "get_oversample" cls sig => cls -> sig
+get_oversample = runMethod @"get_oversample"
+
+get_owner :: Method "get_owner" cls sig => cls -> sig
+get_owner = runMethod @"get_owner"
+
+get_packet :: Method "get_packet" cls sig => cls -> sig
+get_packet = runMethod @"get_packet"
+
+get_packet_channel ::
+                     Method "get_packet_channel" cls sig => cls -> sig
+get_packet_channel = runMethod @"get_packet_channel"
+
+get_packet_error :: Method "get_packet_error" cls sig => cls -> sig
+get_packet_error = runMethod @"get_packet_error"
+
+get_packet_ip :: Method "get_packet_ip" cls sig => cls -> sig
+get_packet_ip = runMethod @"get_packet_ip"
+
+get_packet_peer :: Method "get_packet_peer" cls sig => cls -> sig
+get_packet_peer = runMethod @"get_packet_peer"
+
+get_packet_port :: Method "get_packet_port" cls sig => cls -> sig
+get_packet_port = runMethod @"get_packet_port"
+
+get_page :: Method "get_page" cls sig => cls -> sig
+get_page = runMethod @"get_page"
+
+get_pan :: Method "get_pan" cls sig => cls -> sig
+get_pan = runMethod @"get_pan"
+
+get_pan_pullout :: Method "get_pan_pullout" cls sig => cls -> sig
+get_pan_pullout = runMethod @"get_pan_pullout"
+
+get_panorama :: Method "get_panorama" cls sig => cls -> sig
+get_panorama = runMethod @"get_panorama"
+
+get_param :: Method "get_param" cls sig => cls -> sig
+get_param = runMethod @"get_param"
+
+get_param_curve :: Method "get_param_curve" cls sig => cls -> sig
+get_param_curve = runMethod @"get_param_curve"
+
+get_param_randomness ::
+                       Method "get_param_randomness" cls sig => cls -> sig
+get_param_randomness = runMethod @"get_param_randomness"
+
+get_param_texture ::
+                    Method "get_param_texture" cls sig => cls -> sig
+get_param_texture = runMethod @"get_param_texture"
+
+get_param_x :: Method "get_param_x" cls sig => cls -> sig
+get_param_x = runMethod @"get_param_x"
+
+get_param_y :: Method "get_param_y" cls sig => cls -> sig
+get_param_y = runMethod @"get_param_y"
+
+get_param_z :: Method "get_param_z" cls sig => cls -> sig
+get_param_z = runMethod @"get_param_z"
+
+get_parameter :: Method "get_parameter" cls sig => cls -> sig
+get_parameter = runMethod @"get_parameter"
+
+get_parent :: Method "get_parent" cls sig => cls -> sig
+get_parent = runMethod @"get_parent"
+
+get_parent_area_size ::
+                       Method "get_parent_area_size" cls sig => cls -> sig
+get_parent_area_size = runMethod @"get_parent_area_size"
+
+get_parent_class :: Method "get_parent_class" cls sig => cls -> sig
+get_parent_class = runMethod @"get_parent_class"
+
+get_parent_collision_ignore ::
+                              Method "get_parent_collision_ignore" cls sig => cls -> sig
+get_parent_collision_ignore
+  = runMethod @"get_parent_collision_ignore"
+
+get_parent_control ::
+                     Method "get_parent_control" cls sig => cls -> sig
+get_parent_control = runMethod @"get_parent_control"
+
+get_parent_skeleton ::
+                      Method "get_parent_skeleton" cls sig => cls -> sig
+get_parent_skeleton = runMethod @"get_parent_skeleton"
+
+get_parent_spatial ::
+                     Method "get_parent_spatial" cls sig => cls -> sig
+get_parent_spatial = runMethod @"get_parent_spatial"
+
+get_partial_data :: Method "get_partial_data" cls sig => cls -> sig
+get_partial_data = runMethod @"get_partial_data"
+
+get_particle_flag ::
+                    Method "get_particle_flag" cls sig => cls -> sig
+get_particle_flag = runMethod @"get_particle_flag"
+
+get_particles_anim_h_frames ::
+                              Method "get_particles_anim_h_frames" cls sig => cls -> sig
+get_particles_anim_h_frames
+  = runMethod @"get_particles_anim_h_frames"
+
+get_particles_anim_loop ::
+                          Method "get_particles_anim_loop" cls sig => cls -> sig
+get_particles_anim_loop = runMethod @"get_particles_anim_loop"
+
+get_particles_anim_v_frames ::
+                              Method "get_particles_anim_v_frames" cls sig => cls -> sig
+get_particles_anim_v_frames
+  = runMethod @"get_particles_anim_v_frames"
+
+get_pascal_string ::
+                    Method "get_pascal_string" cls sig => cls -> sig
+get_pascal_string = runMethod @"get_pascal_string"
+
+get_patch_margin :: Method "get_patch_margin" cls sig => cls -> sig
+get_patch_margin = runMethod @"get_patch_margin"
+
+get_path :: Method "get_path" cls sig => cls -> sig
+get_path = runMethod @"get_path"
+
+get_path_absolute ::
+                    Method "get_path_absolute" cls sig => cls -> sig
+get_path_absolute = runMethod @"get_path_absolute"
+
+get_path_interval ::
+                    Method "get_path_interval" cls sig => cls -> sig
+get_path_interval = runMethod @"get_path_interval"
+
+get_path_node :: Method "get_path_node" cls sig => cls -> sig
+get_path_node = runMethod @"get_path_node"
+
+get_path_rotation ::
+                    Method "get_path_rotation" cls sig => cls -> sig
+get_path_rotation = runMethod @"get_path_rotation"
+
+get_path_to :: Method "get_path_to" cls sig => cls -> sig
+get_path_to = runMethod @"get_path_to"
+
+get_pattern :: Method "get_pattern" cls sig => cls -> sig
+get_pattern = runMethod @"get_pattern"
+
+get_pause_mode :: Method "get_pause_mode" cls sig => cls -> sig
+get_pause_mode = runMethod @"get_pause_mode"
+
+get_peer :: Method "get_peer" cls sig => cls -> sig
+get_peer = runMethod @"get_peer"
+
+get_peer_address :: Method "get_peer_address" cls sig => cls -> sig
+get_peer_address = runMethod @"get_peer_address"
+
+get_peer_port :: Method "get_peer_port" cls sig => cls -> sig
+get_peer_port = runMethod @"get_peer_port"
+
+get_percent_visible ::
+                      Method "get_percent_visible" cls sig => cls -> sig
+get_percent_visible = runMethod @"get_percent_visible"
+
+get_period :: Method "get_period" cls sig => cls -> sig
+get_period = runMethod @"get_period"
+
+get_persistence :: Method "get_persistence" cls sig => cls -> sig
+get_persistence = runMethod @"get_persistence"
+
+get_physics_jitter_fix ::
+                         Method "get_physics_jitter_fix" cls sig => cls -> sig
+get_physics_jitter_fix = runMethod @"get_physics_jitter_fix"
+
+get_physics_material_override ::
+                                Method "get_physics_material_override" cls sig => cls -> sig
+get_physics_material_override
+  = runMethod @"get_physics_material_override"
+
+get_physics_object_picking ::
+                             Method "get_physics_object_picking" cls sig => cls -> sig
+get_physics_object_picking
+  = runMethod @"get_physics_object_picking"
+
+get_physics_process_delta_time ::
+                                 Method "get_physics_process_delta_time" cls sig => cls -> sig
+get_physics_process_delta_time
+  = runMethod @"get_physics_process_delta_time"
+
+get_pick_color :: Method "get_pick_color" cls sig => cls -> sig
+get_pick_color = runMethod @"get_pick_color"
+
+get_picker :: Method "get_picker" cls sig => cls -> sig
+get_picker = runMethod @"get_picker"
+
+get_piece_count :: Method "get_piece_count" cls sig => cls -> sig
+get_piece_count = runMethod @"get_piece_count"
+
+get_piece_offset :: Method "get_piece_offset" cls sig => cls -> sig
+get_piece_offset = runMethod @"get_piece_offset"
+
+get_piece_texture ::
+                    Method "get_piece_texture" cls sig => cls -> sig
+get_piece_texture = runMethod @"get_piece_texture"
+
+get_pitch_scale :: Method "get_pitch_scale" cls sig => cls -> sig
+get_pitch_scale = runMethod @"get_pitch_scale"
+
+get_pivot_offset :: Method "get_pivot_offset" cls sig => cls -> sig
+get_pivot_offset = runMethod @"get_pivot_offset"
+
+get_pixel :: Method "get_pixel" cls sig => cls -> sig
+get_pixel = runMethod @"get_pixel"
+
+get_pixel_size :: Method "get_pixel_size" cls sig => cls -> sig
+get_pixel_size = runMethod @"get_pixel_size"
+
+get_pixelv :: Method "get_pixelv" cls sig => cls -> sig
+get_pixelv = runMethod @"get_pixelv"
+
+get_placeholder :: Method "get_placeholder" cls sig => cls -> sig
+get_placeholder = runMethod @"get_placeholder"
+
+get_placeholder_alpha ::
+                        Method "get_placeholder_alpha" cls sig => cls -> sig
+get_placeholder_alpha = runMethod @"get_placeholder_alpha"
+
+get_plane :: Method "get_plane" cls sig => cls -> sig
+get_plane = runMethod @"get_plane"
+
+get_playback_position ::
+                        Method "get_playback_position" cls sig => cls -> sig
+get_playback_position = runMethod @"get_playback_position"
+
+get_playback_time ::
+                    Method "get_playback_time" cls sig => cls -> sig
+get_playback_time = runMethod @"get_playback_time"
+
+get_playing_speed ::
+                    Method "get_playing_speed" cls sig => cls -> sig
+get_playing_speed = runMethod @"get_playing_speed"
+
+get_plugin_icon :: Method "get_plugin_icon" cls sig => cls -> sig
+get_plugin_icon = runMethod @"get_plugin_icon"
+
+get_plugin_name :: Method "get_plugin_name" cls sig => cls -> sig
+get_plugin_name = runMethod @"get_plugin_name"
+
+get_point_connections ::
+                        Method "get_point_connections" cls sig => cls -> sig
+get_point_connections = runMethod @"get_point_connections"
+
+get_point_count :: Method "get_point_count" cls sig => cls -> sig
+get_point_count = runMethod @"get_point_count"
+
+get_point_in :: Method "get_point_in" cls sig => cls -> sig
+get_point_in = runMethod @"get_point_in"
+
+get_point_left_mode ::
+                      Method "get_point_left_mode" cls sig => cls -> sig
+get_point_left_mode = runMethod @"get_point_left_mode"
+
+get_point_left_tangent ::
+                         Method "get_point_left_tangent" cls sig => cls -> sig
+get_point_left_tangent = runMethod @"get_point_left_tangent"
+
+get_point_out :: Method "get_point_out" cls sig => cls -> sig
+get_point_out = runMethod @"get_point_out"
+
+get_point_path :: Method "get_point_path" cls sig => cls -> sig
+get_point_path = runMethod @"get_point_path"
+
+get_point_penalty ::
+                    Method "get_point_penalty" cls sig => cls -> sig
+get_point_penalty = runMethod @"get_point_penalty"
+
+get_point_position ::
+                     Method "get_point_position" cls sig => cls -> sig
+get_point_position = runMethod @"get_point_position"
+
+get_point_right_mode ::
+                       Method "get_point_right_mode" cls sig => cls -> sig
+get_point_right_mode = runMethod @"get_point_right_mode"
+
+get_point_right_tangent ::
+                          Method "get_point_right_tangent" cls sig => cls -> sig
+get_point_right_tangent = runMethod @"get_point_right_tangent"
+
+get_point_size :: Method "get_point_size" cls sig => cls -> sig
+get_point_size = runMethod @"get_point_size"
+
+get_point_tilt :: Method "get_point_tilt" cls sig => cls -> sig
+get_point_tilt = runMethod @"get_point_tilt"
+
+get_point_weight_scale ::
+                         Method "get_point_weight_scale" cls sig => cls -> sig
+get_point_weight_scale = runMethod @"get_point_weight_scale"
+
+get_points :: Method "get_points" cls sig => cls -> sig
+get_points = runMethod @"get_points"
+
+get_polygon :: Method "get_polygon" cls sig => cls -> sig
+get_polygon = runMethod @"get_polygon"
+
+get_polygon_count ::
+                    Method "get_polygon_count" cls sig => cls -> sig
+get_polygon_count = runMethod @"get_polygon_count"
+
+get_popup :: Method "get_popup" cls sig => cls -> sig
+get_popup = runMethod @"get_popup"
+
+get_pose_matching_coefficient ::
+                                Method "get_pose_matching_coefficient" cls sig => cls -> sig
+get_pose_matching_coefficient
+  = runMethod @"get_pose_matching_coefficient"
+
+get_position :: Method "get_position" cls sig => cls -> sig
+get_position = runMethod @"get_position"
+
+get_position_in_parent ::
+                         Method "get_position_in_parent" cls sig => cls -> sig
+get_position_in_parent = runMethod @"get_position_in_parent"
+
+get_post_gain :: Method "get_post_gain" cls sig => cls -> sig
+get_post_gain = runMethod @"get_post_gain"
+
+get_power_percent_left ::
+                         Method "get_power_percent_left" cls sig => cls -> sig
+get_power_percent_left = runMethod @"get_power_percent_left"
+
+get_power_seconds_left ::
+                         Method "get_power_seconds_left" cls sig => cls -> sig
+get_power_seconds_left = runMethod @"get_power_seconds_left"
+
+get_power_state :: Method "get_power_state" cls sig => cls -> sig
+get_power_state = runMethod @"get_power_state"
+
+get_pre_gain :: Method "get_pre_gain" cls sig => cls -> sig
+get_pre_gain = runMethod @"get_pre_gain"
+
+get_pre_process_time ::
+                       Method "get_pre_process_time" cls sig => cls -> sig
+get_pre_process_time = runMethod @"get_pre_process_time"
+
+get_predelay_feedback ::
+                        Method "get_predelay_feedback" cls sig => cls -> sig
+get_predelay_feedback = runMethod @"get_predelay_feedback"
+
+get_predelay_msec ::
+                    Method "get_predelay_msec" cls sig => cls -> sig
+get_predelay_msec = runMethod @"get_predelay_msec"
+
+get_prefix :: Method "get_prefix" cls sig => cls -> sig
+get_prefix = runMethod @"get_prefix"
+
+get_preload :: Method "get_preload" cls sig => cls -> sig
+get_preload = runMethod @"get_preload"
+
+get_preset_count :: Method "get_preset_count" cls sig => cls -> sig
+get_preset_count = runMethod @"get_preset_count"
+
+get_preset_name :: Method "get_preset_name" cls sig => cls -> sig
+get_preset_name = runMethod @"get_preset_name"
+
+get_pressed_button ::
+                     Method "get_pressed_button" cls sig => cls -> sig
+get_pressed_button = runMethod @"get_pressed_button"
+
+get_pressed_texture ::
+                      Method "get_pressed_texture" cls sig => cls -> sig
+get_pressed_texture = runMethod @"get_pressed_texture"
+
+get_pressure :: Method "get_pressure" cls sig => cls -> sig
+get_pressure = runMethod @"get_pressure"
+
+get_pressure_coefficient ::
+                           Method "get_pressure_coefficient" cls sig => cls -> sig
+get_pressure_coefficient = runMethod @"get_pressure_coefficient"
+
+get_prev :: Method "get_prev" cls sig => cls -> sig
+get_prev = runMethod @"get_prev"
+
+get_prev_visible :: Method "get_prev_visible" cls sig => cls -> sig
+get_prev_visible = runMethod @"get_prev_visible"
+
+get_previous_tab :: Method "get_previous_tab" cls sig => cls -> sig
+get_previous_tab = runMethod @"get_previous_tab"
+
+get_primary_interface ::
+                        Method "get_primary_interface" cls sig => cls -> sig
+get_primary_interface = runMethod @"get_primary_interface"
+
+get_principal_inertia_axes ::
+                             Method "get_principal_inertia_axes" cls sig => cls -> sig
+get_principal_inertia_axes
+  = runMethod @"get_principal_inertia_axes"
+
+get_priority :: Method "get_priority" cls sig => cls -> sig
+get_priority = runMethod @"get_priority"
+
+get_probe_data :: Method "get_probe_data" cls sig => cls -> sig
+get_probe_data = runMethod @"get_probe_data"
+
+get_process_delta_time ::
+                         Method "get_process_delta_time" cls sig => cls -> sig
+get_process_delta_time = runMethod @"get_process_delta_time"
+
+get_process_id :: Method "get_process_id" cls sig => cls -> sig
+get_process_id = runMethod @"get_process_id"
+
+get_process_info :: Method "get_process_info" cls sig => cls -> sig
+get_process_info = runMethod @"get_process_info"
+
+get_process_material ::
+                       Method "get_process_material" cls sig => cls -> sig
+get_process_material = runMethod @"get_process_material"
+
+get_process_mode :: Method "get_process_mode" cls sig => cls -> sig
+get_process_mode = runMethod @"get_process_mode"
+
+get_processor_count ::
+                      Method "get_processor_count" cls sig => cls -> sig
+get_processor_count = runMethod @"get_processor_count"
+
+get_progress_texture ::
+                       Method "get_progress_texture" cls sig => cls -> sig
+get_progress_texture = runMethod @"get_progress_texture"
+
+get_project_metadata ::
+                       Method "get_project_metadata" cls sig => cls -> sig
+get_project_metadata = runMethod @"get_project_metadata"
+
+get_project_settings_dir ::
+                           Method "get_project_settings_dir" cls sig => cls -> sig
+get_project_settings_dir = runMethod @"get_project_settings_dir"
+
+get_projection :: Method "get_projection" cls sig => cls -> sig
+get_projection = runMethod @"get_projection"
+
+get_propagation :: Method "get_propagation" cls sig => cls -> sig
+get_propagation = runMethod @"get_propagation"
+
+get_property :: Method "get_property" cls sig => cls -> sig
+get_property = runMethod @"get_property"
+
+get_property_documentation ::
+                             Method "get_property_documentation" cls sig => cls -> sig
+get_property_documentation
+  = runMethod @"get_property_documentation"
+
+get_property_list ::
+                    Method "get_property_list" cls sig => cls -> sig
+get_property_list = runMethod @"get_property_list"
+
+get_proximity_fade_distance ::
+                              Method "get_proximity_fade_distance" cls sig => cls -> sig
+get_proximity_fade_distance
+  = runMethod @"get_proximity_fade_distance"
+
+get_quadrant_size ::
+                    Method "get_quadrant_size" cls sig => cls -> sig
+get_quadrant_size = runMethod @"get_quadrant_size"
+
+get_radial_center_offset ::
+                           Method "get_radial_center_offset" cls sig => cls -> sig
+get_radial_center_offset = runMethod @"get_radial_center_offset"
+
+get_radial_initial_angle ::
+                           Method "get_radial_initial_angle" cls sig => cls -> sig
+get_radial_initial_angle = runMethod @"get_radial_initial_angle"
+
+get_radial_segments ::
+                      Method "get_radial_segments" cls sig => cls -> sig
+get_radial_segments = runMethod @"get_radial_segments"
+
+get_radiance_size ::
+                    Method "get_radiance_size" cls sig => cls -> sig
+get_radiance_size = runMethod @"get_radiance_size"
+
+get_radius :: Method "get_radius" cls sig => cls -> sig
+get_radius = runMethod @"get_radius"
+
+get_random_pitch :: Method "get_random_pitch" cls sig => cls -> sig
+get_random_pitch = runMethod @"get_random_pitch"
+
+get_randomness_ratio ::
+                       Method "get_randomness_ratio" cls sig => cls -> sig
+get_randomness_ratio = runMethod @"get_randomness_ratio"
+
+get_range :: Method "get_range" cls sig => cls -> sig
+get_range = runMethod @"get_range"
+
+get_range_config :: Method "get_range_config" cls sig => cls -> sig
+get_range_config = runMethod @"get_range_config"
+
+get_range_max_hz :: Method "get_range_max_hz" cls sig => cls -> sig
+get_range_max_hz = runMethod @"get_range_max_hz"
+
+get_range_min_hz :: Method "get_range_min_hz" cls sig => cls -> sig
+get_range_min_hz = runMethod @"get_range_min_hz"
+
+get_rate_hz :: Method "get_rate_hz" cls sig => cls -> sig
+get_rate_hz = runMethod @"get_rate_hz"
+
+get_ratio :: Method "get_ratio" cls sig => cls -> sig
+get_ratio = runMethod @"get_ratio"
+
+get_real :: Method "get_real" cls sig => cls -> sig
+get_real = runMethod @"get_real"
+
+get_real_window_size ::
+                       Method "get_real_window_size" cls sig => cls -> sig
+get_real_window_size = runMethod @"get_real_window_size"
+
+get_recent_dirs :: Method "get_recent_dirs" cls sig => cls -> sig
+get_recent_dirs = runMethod @"get_recent_dirs"
+
+get_recognized_extensions ::
+                            Method "get_recognized_extensions" cls sig => cls -> sig
+get_recognized_extensions = runMethod @"get_recognized_extensions"
+
+get_recognized_extensions_for_type ::
+                                     Method "get_recognized_extensions_for_type" cls sig =>
+                                     cls -> sig
+get_recognized_extensions_for_type
+  = runMethod @"get_recognized_extensions_for_type"
+
+get_recording :: Method "get_recording" cls sig => cls -> sig
+get_recording = runMethod @"get_recording"
+
+get_rect :: Method "get_rect" cls sig => cls -> sig
+get_rect = runMethod @"get_rect"
+
+get_ref :: Method "get_ref" cls sig => cls -> sig
+get_ref = runMethod @"get_ref"
+
+get_reference_frame ::
+                      Method "get_reference_frame" cls sig => cls -> sig
+get_reference_frame = runMethod @"get_reference_frame"
+
+get_refraction :: Method "get_refraction" cls sig => cls -> sig
+get_refraction = runMethod @"get_refraction"
+
+get_refraction_texture_channel ::
+                                 Method "get_refraction_texture_channel" cls sig => cls -> sig
+get_refraction_texture_channel
+  = runMethod @"get_refraction_texture_channel"
+
+get_region :: Method "get_region" cls sig => cls -> sig
+get_region = runMethod @"get_region"
+
+get_region_merge_size ::
+                        Method "get_region_merge_size" cls sig => cls -> sig
+get_region_merge_size = runMethod @"get_region_merge_size"
+
+get_region_min_size ::
+                      Method "get_region_min_size" cls sig => cls -> sig
+get_region_min_size = runMethod @"get_region_min_size"
+
+get_region_rect :: Method "get_region_rect" cls sig => cls -> sig
+get_region_rect = runMethod @"get_region_rect"
+
+get_relative :: Method "get_relative" cls sig => cls -> sig
+get_relative = runMethod @"get_relative"
+
+get_relative_transform_to_parent ::
+                                   Method "get_relative_transform_to_parent" cls sig => cls -> sig
+get_relative_transform_to_parent
+  = runMethod @"get_relative_transform_to_parent"
+
+get_release_ms :: Method "get_release_ms" cls sig => cls -> sig
+get_release_ms = runMethod @"get_release_ms"
+
+get_remainder :: Method "get_remainder" cls sig => cls -> sig
+get_remainder = runMethod @"get_remainder"
+
+get_remote_node :: Method "get_remote_node" cls sig => cls -> sig
+get_remote_node = runMethod @"get_remote_node"
+
+get_render_info :: Method "get_render_info" cls sig => cls -> sig
+get_render_info = runMethod @"get_render_info"
+
+get_render_priority ::
+                      Method "get_render_priority" cls sig => cls -> sig
+get_render_priority = runMethod @"get_render_priority"
+
+get_render_targetsize ::
+                        Method "get_render_targetsize" cls sig => cls -> sig
+get_render_targetsize = runMethod @"get_render_targetsize"
+
+get_resizable :: Method "get_resizable" cls sig => cls -> sig
+get_resizable = runMethod @"get_resizable"
+
+get_resolve_item_address ::
+                           Method "get_resolve_item_address" cls sig => cls -> sig
+get_resolve_item_address = runMethod @"get_resolve_item_address"
+
+get_resolve_item_status ::
+                          Method "get_resolve_item_status" cls sig => cls -> sig
+get_resolve_item_status = runMethod @"get_resolve_item_status"
+
+get_resonance :: Method "get_resonance" cls sig => cls -> sig
+get_resonance = runMethod @"get_resonance"
+
+get_resource :: Method "get_resource" cls sig => cls -> sig
+get_resource = runMethod @"get_resource"
+
+get_resource_filesystem ::
+                          Method "get_resource_filesystem" cls sig => cls -> sig
+get_resource_filesystem = runMethod @"get_resource_filesystem"
+
+get_resource_list ::
+                    Method "get_resource_list" cls sig => cls -> sig
+get_resource_list = runMethod @"get_resource_list"
+
+get_resource_path ::
+                    Method "get_resource_path" cls sig => cls -> sig
+get_resource_path = runMethod @"get_resource_path"
+
+get_resource_previewer ::
+                         Method "get_resource_previewer" cls sig => cls -> sig
+get_resource_previewer = runMethod @"get_resource_previewer"
+
+get_resource_type ::
+                    Method "get_resource_type" cls sig => cls -> sig
+get_resource_type = runMethod @"get_resource_type"
+
+get_response_body_length ::
+                           Method "get_response_body_length" cls sig => cls -> sig
+get_response_body_length = runMethod @"get_response_body_length"
+
+get_response_code ::
+                    Method "get_response_code" cls sig => cls -> sig
+get_response_code = runMethod @"get_response_code"
+
+get_response_headers ::
+                       Method "get_response_headers" cls sig => cls -> sig
+get_response_headers = runMethod @"get_response_headers"
+
+get_response_headers_as_dictionary ::
+                                     Method "get_response_headers_as_dictionary" cls sig =>
+                                     cls -> sig
+get_response_headers_as_dictionary
+  = runMethod @"get_response_headers_as_dictionary"
+
+get_rest :: Method "get_rest" cls sig => cls -> sig
+get_rest = runMethod @"get_rest"
+
+get_rest_info :: Method "get_rest_info" cls sig => cls -> sig
+get_rest_info = runMethod @"get_rest_info"
+
+get_rest_length :: Method "get_rest_length" cls sig => cls -> sig
+get_rest_length = runMethod @"get_rest_length"
+
+get_result :: Method "get_result" cls sig => cls -> sig
+get_result = runMethod @"get_result"
+
+get_result_count :: Method "get_result_count" cls sig => cls -> sig
+get_result_count = runMethod @"get_result_count"
+
+get_result_object ::
+                    Method "get_result_object" cls sig => cls -> sig
+get_result_object = runMethod @"get_result_object"
+
+get_result_object_id ::
+                       Method "get_result_object_id" cls sig => cls -> sig
+get_result_object_id = runMethod @"get_result_object_id"
+
+get_result_object_shape ::
+                          Method "get_result_object_shape" cls sig => cls -> sig
+get_result_object_shape = runMethod @"get_result_object_shape"
+
+get_result_rid :: Method "get_result_rid" cls sig => cls -> sig
+get_result_rid = runMethod @"get_result_rid"
+
+get_return_type :: Method "get_return_type" cls sig => cls -> sig
+get_return_type = runMethod @"get_return_type"
+
+get_reverb_amount ::
+                    Method "get_reverb_amount" cls sig => cls -> sig
+get_reverb_amount = runMethod @"get_reverb_amount"
+
+get_reverb_bus :: Method "get_reverb_bus" cls sig => cls -> sig
+get_reverb_bus = runMethod @"get_reverb_bus"
+
+get_reverb_uniformity ::
+                        Method "get_reverb_uniformity" cls sig => cls -> sig
+get_reverb_uniformity = runMethod @"get_reverb_uniformity"
+
+get_rid :: Method "get_rid" cls sig => cls -> sig
+get_rid = runMethod @"get_rid"
+
+get_rim :: Method "get_rim" cls sig => cls -> sig
+get_rim = runMethod @"get_rim"
+
+get_rim_tint :: Method "get_rim_tint" cls sig => cls -> sig
+get_rim_tint = runMethod @"get_rim_tint"
+
+get_ring_sides :: Method "get_ring_sides" cls sig => cls -> sig
+get_ring_sides = runMethod @"get_ring_sides"
+
+get_rings :: Method "get_rings" cls sig => cls -> sig
+get_rings = runMethod @"get_rings"
+
+get_roll_influence ::
+                     Method "get_roll_influence" cls sig => cls -> sig
+get_roll_influence = runMethod @"get_roll_influence"
+
+get_room_size :: Method "get_room_size" cls sig => cls -> sig
+get_room_size = runMethod @"get_room_size"
+
+get_root :: Method "get_root" cls sig => cls -> sig
+get_root = runMethod @"get_root"
+
+get_root_bone :: Method "get_root_bone" cls sig => cls -> sig
+get_root_bone = runMethod @"get_root_bone"
+
+get_root_motion_track ::
+                        Method "get_root_motion_track" cls sig => cls -> sig
+get_root_motion_track = runMethod @"get_root_motion_track"
+
+get_root_motion_transform ::
+                            Method "get_root_motion_transform" cls sig => cls -> sig
+get_root_motion_transform = runMethod @"get_root_motion_transform"
+
+get_rotation :: Method "get_rotation" cls sig => cls -> sig
+get_rotation = runMethod @"get_rotation"
+
+get_rotation_degrees ::
+                       Method "get_rotation_degrees" cls sig => cls -> sig
+get_rotation_degrees = runMethod @"get_rotation_degrees"
+
+get_rotation_mode ::
+                    Method "get_rotation_mode" cls sig => cls -> sig
+get_rotation_mode = runMethod @"get_rotation_mode"
+
+get_roughness :: Method "get_roughness" cls sig => cls -> sig
+get_roughness = runMethod @"get_roughness"
+
+get_roughness_texture_channel ::
+                                Method "get_roughness_texture_channel" cls sig => cls -> sig
+get_roughness_texture_channel
+  = runMethod @"get_roughness_texture_channel"
+
+get_round_precision ::
+                      Method "get_round_precision" cls sig => cls -> sig
+get_round_precision = runMethod @"get_round_precision"
+
+get_rpc_call_mode ::
+                    Method "get_rpc_call_mode" cls sig => cls -> sig
+get_rpc_call_mode = runMethod @"get_rpc_call_mode"
+
+get_rpc_sender_id ::
+                    Method "get_rpc_sender_id" cls sig => cls -> sig
+get_rpc_sender_id = runMethod @"get_rpc_sender_id"
+
+get_rumble :: Method "get_rumble" cls sig => cls -> sig
+get_rumble = runMethod @"get_rumble"
+
+get_runtime :: Method "get_runtime" cls sig => cls -> sig
+get_runtime = runMethod @"get_runtime"
+
+get_safe_margin :: Method "get_safe_margin" cls sig => cls -> sig
+get_safe_margin = runMethod @"get_safe_margin"
+
+get_sample_partition_type ::
+                            Method "get_sample_partition_type" cls sig => cls -> sig
+get_sample_partition_type = runMethod @"get_sample_partition_type"
+
+get_save_extension ::
+                     Method "get_save_extension" cls sig => cls -> sig
+get_save_extension = runMethod @"get_save_extension"
+
+get_scale :: Method "get_scale" cls sig => cls -> sig
+get_scale = runMethod @"get_scale"
+
+get_scancode :: Method "get_scancode" cls sig => cls -> sig
+get_scancode = runMethod @"get_scancode"
+
+get_scancode_string ::
+                      Method "get_scancode_string" cls sig => cls -> sig
+get_scancode_string = runMethod @"get_scancode_string"
+
+get_scancode_with_modifiers ::
+                              Method "get_scancode_with_modifiers" cls sig => cls -> sig
+get_scancode_with_modifiers
+  = runMethod @"get_scancode_with_modifiers"
+
+get_scanning_progress ::
+                        Method "get_scanning_progress" cls sig => cls -> sig
+get_scanning_progress = runMethod @"get_scanning_progress"
+
+get_scenario :: Method "get_scenario" cls sig => cls -> sig
+get_scenario = runMethod @"get_scenario"
+
+get_scene :: Method "get_scene" cls sig => cls -> sig
+get_scene = runMethod @"get_scene"
+
+get_scene_instance_load_placeholder ::
+                                      Method "get_scene_instance_load_placeholder" cls sig =>
+                                      cls -> sig
+get_scene_instance_load_placeholder
+  = runMethod @"get_scene_instance_load_placeholder"
+
+get_screen_count :: Method "get_screen_count" cls sig => cls -> sig
+get_screen_count = runMethod @"get_screen_count"
+
+get_screen_dpi :: Method "get_screen_dpi" cls sig => cls -> sig
+get_screen_dpi = runMethod @"get_screen_dpi"
+
+get_screen_orientation ::
+                         Method "get_screen_orientation" cls sig => cls -> sig
+get_screen_orientation = runMethod @"get_screen_orientation"
+
+get_screen_position ::
+                      Method "get_screen_position" cls sig => cls -> sig
+get_screen_position = runMethod @"get_screen_position"
+
+get_screen_size :: Method "get_screen_size" cls sig => cls -> sig
+get_screen_size = runMethod @"get_screen_size"
+
+get_script :: Method "get_script" cls sig => cls -> sig
+get_script = runMethod @"get_script"
+
+get_script_class_icon_path ::
+                             Method "get_script_class_icon_path" cls sig => cls -> sig
+get_script_class_icon_path
+  = runMethod @"get_script_class_icon_path"
+
+get_script_class_name ::
+                        Method "get_script_class_name" cls sig => cls -> sig
+get_script_class_name = runMethod @"get_script_class_name"
+
+get_script_create_dialog ::
+                           Method "get_script_create_dialog" cls sig => cls -> sig
+get_script_create_dialog = runMethod @"get_script_create_dialog"
+
+get_script_editor ::
+                    Method "get_script_editor" cls sig => cls -> sig
+get_script_editor = runMethod @"get_script_editor"
+
+get_scroll :: Method "get_scroll" cls sig => cls -> sig
+get_scroll = runMethod @"get_scroll"
+
+get_scroll_base_offset ::
+                         Method "get_scroll_base_offset" cls sig => cls -> sig
+get_scroll_base_offset = runMethod @"get_scroll_base_offset"
+
+get_scroll_base_scale ::
+                        Method "get_scroll_base_scale" cls sig => cls -> sig
+get_scroll_base_scale = runMethod @"get_scroll_base_scale"
+
+get_scroll_offset ::
+                    Method "get_scroll_offset" cls sig => cls -> sig
+get_scroll_offset = runMethod @"get_scroll_offset"
+
+get_scroll_ofs :: Method "get_scroll_ofs" cls sig => cls -> sig
+get_scroll_ofs = runMethod @"get_scroll_ofs"
+
+get_scrolling_enabled ::
+                        Method "get_scrolling_enabled" cls sig => cls -> sig
+get_scrolling_enabled = runMethod @"get_scrolling_enabled"
+
+get_seamless :: Method "get_seamless" cls sig => cls -> sig
+get_seamless = runMethod @"get_seamless"
+
+get_seamless_image ::
+                     Method "get_seamless_image" cls sig => cls -> sig
+get_seamless_image = runMethod @"get_seamless_image"
+
+get_secret_character ::
+                       Method "get_secret_character" cls sig => cls -> sig
+get_secret_character = runMethod @"get_secret_character"
+
+get_section_keys :: Method "get_section_keys" cls sig => cls -> sig
+get_section_keys = runMethod @"get_section_keys"
+
+get_sections :: Method "get_sections" cls sig => cls -> sig
+get_sections = runMethod @"get_sections"
+
+get_seed :: Method "get_seed" cls sig => cls -> sig
+get_seed = runMethod @"get_seed"
+
+get_segments :: Method "get_segments" cls sig => cls -> sig
+get_segments = runMethod @"get_segments"
+
+get_select_mode :: Method "get_select_mode" cls sig => cls -> sig
+get_select_mode = runMethod @"get_select_mode"
+
+get_select_with_rmb ::
+                      Method "get_select_with_rmb" cls sig => cls -> sig
+get_select_with_rmb = runMethod @"get_select_with_rmb"
+
+get_selected :: Method "get_selected" cls sig => cls -> sig
+get_selected = runMethod @"get_selected"
+
+get_selected_column ::
+                      Method "get_selected_column" cls sig => cls -> sig
+get_selected_column = runMethod @"get_selected_column"
+
+get_selected_id :: Method "get_selected_id" cls sig => cls -> sig
+get_selected_id = runMethod @"get_selected_id"
+
+get_selected_items ::
+                     Method "get_selected_items" cls sig => cls -> sig
+get_selected_items = runMethod @"get_selected_items"
+
+get_selected_metadata ::
+                        Method "get_selected_metadata" cls sig => cls -> sig
+get_selected_metadata = runMethod @"get_selected_metadata"
+
+get_selected_nodes ::
+                     Method "get_selected_nodes" cls sig => cls -> sig
+get_selected_nodes = runMethod @"get_selected_nodes"
+
+get_selected_path ::
+                    Method "get_selected_path" cls sig => cls -> sig
+get_selected_path = runMethod @"get_selected_path"
+
+get_selection :: Method "get_selection" cls sig => cls -> sig
+get_selection = runMethod @"get_selection"
+
+get_selection_from_column ::
+                            Method "get_selection_from_column" cls sig => cls -> sig
+get_selection_from_column = runMethod @"get_selection_from_column"
+
+get_selection_from_line ::
+                          Method "get_selection_from_line" cls sig => cls -> sig
+get_selection_from_line = runMethod @"get_selection_from_line"
+
+get_selection_text ::
+                     Method "get_selection_text" cls sig => cls -> sig
+get_selection_text = runMethod @"get_selection_text"
+
+get_selection_to_column ::
+                          Method "get_selection_to_column" cls sig => cls -> sig
+get_selection_to_column = runMethod @"get_selection_to_column"
+
+get_selection_to_line ::
+                        Method "get_selection_to_line" cls sig => cls -> sig
+get_selection_to_line = runMethod @"get_selection_to_line"
+
+get_self_modulate ::
+                    Method "get_self_modulate" cls sig => cls -> sig
+get_self_modulate = runMethod @"get_self_modulate"
+
+get_service_type :: Method "get_service_type" cls sig => cls -> sig
+get_service_type = runMethod @"get_service_type"
+
+get_setting :: Method "get_setting" cls sig => cls -> sig
+get_setting = runMethod @"get_setting"
+
+get_settings_dir :: Method "get_settings_dir" cls sig => cls -> sig
+get_settings_dir = runMethod @"get_settings_dir"
+
+get_sha256 :: Method "get_sha256" cls sig => cls -> sig
+get_sha256 = runMethod @"get_sha256"
+
+get_shader :: Method "get_shader" cls sig => cls -> sig
+get_shader = runMethod @"get_shader"
+
+get_shader_param :: Method "get_shader_param" cls sig => cls -> sig
+get_shader_param = runMethod @"get_shader_param"
+
+get_shadow_atlas_quadrant_subdiv ::
+                                   Method "get_shadow_atlas_quadrant_subdiv" cls sig => cls -> sig
+get_shadow_atlas_quadrant_subdiv
+  = runMethod @"get_shadow_atlas_quadrant_subdiv"
+
+get_shadow_atlas_size ::
+                        Method "get_shadow_atlas_size" cls sig => cls -> sig
+get_shadow_atlas_size = runMethod @"get_shadow_atlas_size"
+
+get_shadow_buffer_size ::
+                         Method "get_shadow_buffer_size" cls sig => cls -> sig
+get_shadow_buffer_size = runMethod @"get_shadow_buffer_size"
+
+get_shadow_color :: Method "get_shadow_color" cls sig => cls -> sig
+get_shadow_color = runMethod @"get_shadow_color"
+
+get_shadow_depth_range ::
+                         Method "get_shadow_depth_range" cls sig => cls -> sig
+get_shadow_depth_range = runMethod @"get_shadow_depth_range"
+
+get_shadow_detail ::
+                    Method "get_shadow_detail" cls sig => cls -> sig
+get_shadow_detail = runMethod @"get_shadow_detail"
+
+get_shadow_filter ::
+                    Method "get_shadow_filter" cls sig => cls -> sig
+get_shadow_filter = runMethod @"get_shadow_filter"
+
+get_shadow_gradient_length ::
+                             Method "get_shadow_gradient_length" cls sig => cls -> sig
+get_shadow_gradient_length
+  = runMethod @"get_shadow_gradient_length"
+
+get_shadow_mode :: Method "get_shadow_mode" cls sig => cls -> sig
+get_shadow_mode = runMethod @"get_shadow_mode"
+
+get_shadow_reverse_cull_face ::
+                               Method "get_shadow_reverse_cull_face" cls sig => cls -> sig
+get_shadow_reverse_cull_face
+  = runMethod @"get_shadow_reverse_cull_face"
+
+get_shadow_size :: Method "get_shadow_size" cls sig => cls -> sig
+get_shadow_size = runMethod @"get_shadow_size"
+
+get_shadow_smooth ::
+                    Method "get_shadow_smooth" cls sig => cls -> sig
+get_shadow_smooth = runMethod @"get_shadow_smooth"
+
+get_shape :: Method "get_shape" cls sig => cls -> sig
+get_shape = runMethod @"get_shape"
+
+get_shape_owners :: Method "get_shape_owners" cls sig => cls -> sig
+get_shape_owners = runMethod @"get_shape_owners"
+
+get_shape_rid :: Method "get_shape_rid" cls sig => cls -> sig
+get_shape_rid = runMethod @"get_shape_rid"
+
+get_sharp_limit :: Method "get_sharp_limit" cls sig => cls -> sig
+get_sharp_limit = runMethod @"get_sharp_limit"
+
+get_shift :: Method "get_shift" cls sig => cls -> sig
+get_shift = runMethod @"get_shift"
+
+get_shortcut :: Method "get_shortcut" cls sig => cls -> sig
+get_shortcut = runMethod @"get_shortcut"
+
+get_side :: Method "get_side" cls sig => cls -> sig
+get_side = runMethod @"get_side"
+
+get_sidechain :: Method "get_sidechain" cls sig => cls -> sig
+get_sidechain = runMethod @"get_sidechain"
+
+get_sides :: Method "get_sides" cls sig => cls -> sig
+get_sides = runMethod @"get_sides"
+
+get_signal :: Method "get_signal" cls sig => cls -> sig
+get_signal = runMethod @"get_signal"
+
+get_signal_connection_list ::
+                             Method "get_signal_connection_list" cls sig => cls -> sig
+get_signal_connection_list
+  = runMethod @"get_signal_connection_list"
+
+get_signal_documentation ::
+                           Method "get_signal_documentation" cls sig => cls -> sig
+get_signal_documentation = runMethod @"get_signal_documentation"
+
+get_signal_list :: Method "get_signal_list" cls sig => cls -> sig
+get_signal_list = runMethod @"get_signal_list"
+
+get_simple_path :: Method "get_simple_path" cls sig => cls -> sig
+get_simple_path = runMethod @"get_simple_path"
+
+get_simulate_physics ::
+                       Method "get_simulate_physics" cls sig => cls -> sig
+get_simulate_physics = runMethod @"get_simulate_physics"
+
+get_simulation_precision ::
+                           Method "get_simulation_precision" cls sig => cls -> sig
+get_simulation_precision = runMethod @"get_simulation_precision"
+
+get_singleton :: Method "get_singleton" cls sig => cls -> sig
+get_singleton = runMethod @"get_singleton"
+
+get_size :: Method "get_size" cls sig => cls -> sig
+get_size = runMethod @"get_size"
+
+get_size_override ::
+                    Method "get_size_override" cls sig => cls -> sig
+get_size_override = runMethod @"get_size_override"
+
+get_skeleton :: Method "get_skeleton" cls sig => cls -> sig
+get_skeleton = runMethod @"get_skeleton"
+
+get_skeleton_path ::
+                    Method "get_skeleton_path" cls sig => cls -> sig
+get_skeleton_path = runMethod @"get_skeleton_path"
+
+get_skeleton_rest ::
+                    Method "get_skeleton_rest" cls sig => cls -> sig
+get_skeleton_rest = runMethod @"get_skeleton_rest"
+
+get_skidinfo :: Method "get_skidinfo" cls sig => cls -> sig
+get_skidinfo = runMethod @"get_skidinfo"
+
+get_sky :: Method "get_sky" cls sig => cls -> sig
+get_sky = runMethod @"get_sky"
+
+get_sky_curve :: Method "get_sky_curve" cls sig => cls -> sig
+get_sky_curve = runMethod @"get_sky_curve"
+
+get_sky_custom_fov ::
+                     Method "get_sky_custom_fov" cls sig => cls -> sig
+get_sky_custom_fov = runMethod @"get_sky_custom_fov"
+
+get_sky_energy :: Method "get_sky_energy" cls sig => cls -> sig
+get_sky_energy = runMethod @"get_sky_energy"
+
+get_sky_horizon_color ::
+                        Method "get_sky_horizon_color" cls sig => cls -> sig
+get_sky_horizon_color = runMethod @"get_sky_horizon_color"
+
+get_sky_top_color ::
+                    Method "get_sky_top_color" cls sig => cls -> sig
+get_sky_top_color = runMethod @"get_sky_top_color"
+
+get_slide_collision ::
+                      Method "get_slide_collision" cls sig => cls -> sig
+get_slide_collision = runMethod @"get_slide_collision"
+
+get_slide_count :: Method "get_slide_count" cls sig => cls -> sig
+get_slide_count = runMethod @"get_slide_count"
+
+get_slips_on_slope ::
+                     Method "get_slips_on_slope" cls sig => cls -> sig
+get_slips_on_slope = runMethod @"get_slips_on_slope"
+
+get_slot_color_left ::
+                      Method "get_slot_color_left" cls sig => cls -> sig
+get_slot_color_left = runMethod @"get_slot_color_left"
+
+get_slot_color_right ::
+                       Method "get_slot_color_right" cls sig => cls -> sig
+get_slot_color_right = runMethod @"get_slot_color_right"
+
+get_slot_type_left ::
+                     Method "get_slot_type_left" cls sig => cls -> sig
+get_slot_type_left = runMethod @"get_slot_type_left"
+
+get_slot_type_right ::
+                      Method "get_slot_type_right" cls sig => cls -> sig
+get_slot_type_right = runMethod @"get_slot_type_right"
+
+get_smooth_faces :: Method "get_smooth_faces" cls sig => cls -> sig
+get_smooth_faces = runMethod @"get_smooth_faces"
+
+get_snap :: Method "get_snap" cls sig => cls -> sig
+get_snap = runMethod @"get_snap"
+
+get_soft_clip_db :: Method "get_soft_clip_db" cls sig => cls -> sig
+get_soft_clip_db = runMethod @"get_soft_clip_db"
+
+get_soft_clip_ratio ::
+                      Method "get_soft_clip_ratio" cls sig => cls -> sig
+get_soft_clip_ratio = runMethod @"get_soft_clip_ratio"
+
+get_softness :: Method "get_softness" cls sig => cls -> sig
+get_softness = runMethod @"get_softness"
+
+get_solver_priority ::
+                      Method "get_solver_priority" cls sig => cls -> sig
+get_solver_priority = runMethod @"get_solver_priority"
+
+get_source :: Method "get_source" cls sig => cls -> sig
+get_source = runMethod @"get_source"
+
+get_source_code :: Method "get_source_code" cls sig => cls -> sig
+get_source_code = runMethod @"get_source_code"
+
+get_source_file :: Method "get_source_file" cls sig => cls -> sig
+get_source_file = runMethod @"get_source_file"
+
+get_source_folder ::
+                    Method "get_source_folder" cls sig => cls -> sig
+get_source_folder = runMethod @"get_source_folder"
+
+get_space :: Method "get_space" cls sig => cls -> sig
+get_space = runMethod @"get_space"
+
+get_space_left :: Method "get_space_left" cls sig => cls -> sig
+get_space_left = runMethod @"get_space_left"
+
+get_space_override_mode ::
+                          Method "get_space_override_mode" cls sig => cls -> sig
+get_space_override_mode = runMethod @"get_space_override_mode"
+
+get_space_state :: Method "get_space_state" cls sig => cls -> sig
+get_space_state = runMethod @"get_space_state"
+
+get_spacing :: Method "get_spacing" cls sig => cls -> sig
+get_spacing = runMethod @"get_spacing"
+
+get_speaker_mode :: Method "get_speaker_mode" cls sig => cls -> sig
+get_speaker_mode = runMethod @"get_speaker_mode"
+
+get_specular :: Method "get_specular" cls sig => cls -> sig
+get_specular = runMethod @"get_specular"
+
+get_specular_mode ::
+                    Method "get_specular_mode" cls sig => cls -> sig
+get_specular_mode = runMethod @"get_specular_mode"
+
+get_speed :: Method "get_speed" cls sig => cls -> sig
+get_speed = runMethod @"get_speed"
+
+get_speed_scale :: Method "get_speed_scale" cls sig => cls -> sig
+get_speed_scale = runMethod @"get_speed_scale"
+
+get_spin_degrees :: Method "get_spin_degrees" cls sig => cls -> sig
+get_spin_degrees = runMethod @"get_spin_degrees"
+
+get_spin_sides :: Method "get_spin_sides" cls sig => cls -> sig
+get_spin_sides = runMethod @"get_spin_sides"
+
+get_splash_tick_msec ::
+                       Method "get_splash_tick_msec" cls sig => cls -> sig
+get_splash_tick_msec = runMethod @"get_splash_tick_msec"
+
+get_split_offset :: Method "get_split_offset" cls sig => cls -> sig
+get_split_offset = runMethod @"get_split_offset"
+
+get_splits :: Method "get_splits" cls sig => cls -> sig
+get_splits = runMethod @"get_splits"
+
+get_spread :: Method "get_spread" cls sig => cls -> sig
+get_spread = runMethod @"get_spread"
+
+get_sprite_frames ::
+                    Method "get_sprite_frames" cls sig => cls -> sig
+get_sprite_frames = runMethod @"get_sprite_frames"
+
+get_ssao_ao_channel_affect ::
+                             Method "get_ssao_ao_channel_affect" cls sig => cls -> sig
+get_ssao_ao_channel_affect
+  = runMethod @"get_ssao_ao_channel_affect"
+
+get_ssao_bias :: Method "get_ssao_bias" cls sig => cls -> sig
+get_ssao_bias = runMethod @"get_ssao_bias"
+
+get_ssao_blur :: Method "get_ssao_blur" cls sig => cls -> sig
+get_ssao_blur = runMethod @"get_ssao_blur"
+
+get_ssao_color :: Method "get_ssao_color" cls sig => cls -> sig
+get_ssao_color = runMethod @"get_ssao_color"
+
+get_ssao_direct_light_affect ::
+                               Method "get_ssao_direct_light_affect" cls sig => cls -> sig
+get_ssao_direct_light_affect
+  = runMethod @"get_ssao_direct_light_affect"
+
+get_ssao_edge_sharpness ::
+                          Method "get_ssao_edge_sharpness" cls sig => cls -> sig
+get_ssao_edge_sharpness = runMethod @"get_ssao_edge_sharpness"
+
+get_ssao_intensity ::
+                     Method "get_ssao_intensity" cls sig => cls -> sig
+get_ssao_intensity = runMethod @"get_ssao_intensity"
+
+get_ssao_intensity2 ::
+                      Method "get_ssao_intensity2" cls sig => cls -> sig
+get_ssao_intensity2 = runMethod @"get_ssao_intensity2"
+
+get_ssao_quality :: Method "get_ssao_quality" cls sig => cls -> sig
+get_ssao_quality = runMethod @"get_ssao_quality"
+
+get_ssao_radius :: Method "get_ssao_radius" cls sig => cls -> sig
+get_ssao_radius = runMethod @"get_ssao_radius"
+
+get_ssao_radius2 :: Method "get_ssao_radius2" cls sig => cls -> sig
+get_ssao_radius2 = runMethod @"get_ssao_radius2"
+
+get_ssr_depth_tolerance ::
+                          Method "get_ssr_depth_tolerance" cls sig => cls -> sig
+get_ssr_depth_tolerance = runMethod @"get_ssr_depth_tolerance"
+
+get_ssr_fade_in :: Method "get_ssr_fade_in" cls sig => cls -> sig
+get_ssr_fade_in = runMethod @"get_ssr_fade_in"
+
+get_ssr_fade_out :: Method "get_ssr_fade_out" cls sig => cls -> sig
+get_ssr_fade_out = runMethod @"get_ssr_fade_out"
+
+get_ssr_max_steps ::
+                    Method "get_ssr_max_steps" cls sig => cls -> sig
+get_ssr_max_steps = runMethod @"get_ssr_max_steps"
+
+get_stage :: Method "get_stage" cls sig => cls -> sig
+get_stage = runMethod @"get_stage"
+
+get_stage_count :: Method "get_stage_count" cls sig => cls -> sig
+get_stage_count = runMethod @"get_stage_count"
+
+get_start :: Method "get_start" cls sig => cls -> sig
+get_start = runMethod @"get_start"
+
+get_start_node :: Method "get_start_node" cls sig => cls -> sig
+get_start_node = runMethod @"get_start_node"
+
+get_state :: Method "get_state" cls sig => cls -> sig
+get_state = runMethod @"get_state"
+
+get_static_memory_peak_usage ::
+                               Method "get_static_memory_peak_usage" cls sig => cls -> sig
+get_static_memory_peak_usage
+  = runMethod @"get_static_memory_peak_usage"
+
+get_static_memory_usage ::
+                          Method "get_static_memory_usage" cls sig => cls -> sig
+get_static_memory_usage = runMethod @"get_static_memory_usage"
+
+get_status :: Method "get_status" cls sig => cls -> sig
+get_status = runMethod @"get_status"
+
+get_steering :: Method "get_steering" cls sig => cls -> sig
+get_steering = runMethod @"get_steering"
+
+get_step :: Method "get_step" cls sig => cls -> sig
+get_step = runMethod @"get_step"
+
+get_steps :: Method "get_steps" cls sig => cls -> sig
+get_steps = runMethod @"get_steps"
+
+get_stiffness :: Method "get_stiffness" cls sig => cls -> sig
+get_stiffness = runMethod @"get_stiffness"
+
+get_storage :: Method "get_storage" cls sig => cls -> sig
+get_storage = runMethod @"get_storage"
+
+get_stored_values ::
+                    Method "get_stored_values" cls sig => cls -> sig
+get_stored_values = runMethod @"get_stored_values"
+
+get_stream :: Method "get_stream" cls sig => cls -> sig
+get_stream = runMethod @"get_stream"
+
+get_stream_name :: Method "get_stream_name" cls sig => cls -> sig
+get_stream_name = runMethod @"get_stream_name"
+
+get_stream_paused ::
+                    Method "get_stream_paused" cls sig => cls -> sig
+get_stream_paused = runMethod @"get_stream_paused"
+
+get_stream_peer :: Method "get_stream_peer" cls sig => cls -> sig
+get_stream_peer = runMethod @"get_stream_peer"
+
+get_stream_position ::
+                      Method "get_stream_position" cls sig => cls -> sig
+get_stream_position = runMethod @"get_stream_position"
+
+get_stretch_margin ::
+                     Method "get_stretch_margin" cls sig => cls -> sig
+get_stretch_margin = runMethod @"get_stretch_margin"
+
+get_stretch_mode :: Method "get_stretch_mode" cls sig => cls -> sig
+get_stretch_mode = runMethod @"get_stretch_mode"
+
+get_stretch_ratio ::
+                    Method "get_stretch_ratio" cls sig => cls -> sig
+get_stretch_ratio = runMethod @"get_stretch_ratio"
+
+get_stretch_shrink ::
+                     Method "get_stretch_shrink" cls sig => cls -> sig
+get_stretch_shrink = runMethod @"get_stretch_shrink"
+
+get_string :: Method "get_string" cls sig => cls -> sig
+get_string = runMethod @"get_string"
+
+get_string_size :: Method "get_string_size" cls sig => cls -> sig
+get_string_size = runMethod @"get_string_size"
+
+get_strings :: Method "get_strings" cls sig => cls -> sig
+get_strings = runMethod @"get_strings"
+
+get_stylebox :: Method "get_stylebox" cls sig => cls -> sig
+get_stylebox = runMethod @"get_stylebox"
+
+get_stylebox_list ::
+                    Method "get_stylebox_list" cls sig => cls -> sig
+get_stylebox_list = runMethod @"get_stylebox_list"
+
+get_stylebox_types ::
+                     Method "get_stylebox_types" cls sig => cls -> sig
+get_stylebox_types = runMethod @"get_stylebox_types"
+
+get_subdir :: Method "get_subdir" cls sig => cls -> sig
+get_subdir = runMethod @"get_subdir"
+
+get_subdir_count :: Method "get_subdir_count" cls sig => cls -> sig
+get_subdir_count = runMethod @"get_subdir_count"
+
+get_subdiv :: Method "get_subdiv" cls sig => cls -> sig
+get_subdiv = runMethod @"get_subdiv"
+
+get_subdivide_depth ::
+                      Method "get_subdivide_depth" cls sig => cls -> sig
+get_subdivide_depth = runMethod @"get_subdivide_depth"
+
+get_subdivide_height ::
+                       Method "get_subdivide_height" cls sig => cls -> sig
+get_subdivide_height = runMethod @"get_subdivide_height"
+
+get_subdivide_width ::
+                      Method "get_subdivide_width" cls sig => cls -> sig
+get_subdivide_width = runMethod @"get_subdivide_width"
+
+get_subject :: Method "get_subject" cls sig => cls -> sig
+get_subject = runMethod @"get_subject"
+
+get_submenu_popup_delay ::
+                          Method "get_submenu_popup_delay" cls sig => cls -> sig
+get_submenu_popup_delay = runMethod @"get_submenu_popup_delay"
+
+get_subsurface_scattering_strength ::
+                                     Method "get_subsurface_scattering_strength" cls sig =>
+                                     cls -> sig
+get_subsurface_scattering_strength
+  = runMethod @"get_subsurface_scattering_strength"
+
+get_suffix :: Method "get_suffix" cls sig => cls -> sig
+get_suffix = runMethod @"get_suffix"
+
+get_sun_angle_max ::
+                    Method "get_sun_angle_max" cls sig => cls -> sig
+get_sun_angle_max = runMethod @"get_sun_angle_max"
+
+get_sun_angle_min ::
+                    Method "get_sun_angle_min" cls sig => cls -> sig
+get_sun_angle_min = runMethod @"get_sun_angle_min"
+
+get_sun_color :: Method "get_sun_color" cls sig => cls -> sig
+get_sun_color = runMethod @"get_sun_color"
+
+get_sun_curve :: Method "get_sun_curve" cls sig => cls -> sig
+get_sun_curve = runMethod @"get_sun_curve"
+
+get_sun_energy :: Method "get_sun_energy" cls sig => cls -> sig
+get_sun_energy = runMethod @"get_sun_energy"
+
+get_sun_latitude :: Method "get_sun_latitude" cls sig => cls -> sig
+get_sun_latitude = runMethod @"get_sun_latitude"
+
+get_sun_longitude ::
+                    Method "get_sun_longitude" cls sig => cls -> sig
+get_sun_longitude = runMethod @"get_sun_longitude"
+
+get_surface_count ::
+                    Method "get_surface_count" cls sig => cls -> sig
+get_surface_count = runMethod @"get_surface_count"
+
+get_surface_material ::
+                       Method "get_surface_material" cls sig => cls -> sig
+get_surface_material = runMethod @"get_surface_material"
+
+get_surface_material_count ::
+                             Method "get_surface_material_count" cls sig => cls -> sig
+get_surface_material_count
+  = runMethod @"get_surface_material_count"
+
+get_surround :: Method "get_surround" cls sig => cls -> sig
+get_surround = runMethod @"get_surround"
+
+get_suspension_max_force ::
+                           Method "get_suspension_max_force" cls sig => cls -> sig
+get_suspension_max_force = runMethod @"get_suspension_max_force"
+
+get_suspension_rest_length ::
+                             Method "get_suspension_rest_length" cls sig => cls -> sig
+get_suspension_rest_length
+  = runMethod @"get_suspension_rest_length"
+
+get_suspension_stiffness ::
+                           Method "get_suspension_stiffness" cls sig => cls -> sig
+get_suspension_stiffness = runMethod @"get_suspension_stiffness"
+
+get_suspension_travel ::
+                        Method "get_suspension_travel" cls sig => cls -> sig
+get_suspension_travel = runMethod @"get_suspension_travel"
+
+get_switch_mode :: Method "get_switch_mode" cls sig => cls -> sig
+get_switch_mode = runMethod @"get_switch_mode"
+
+get_symbol_prefix ::
+                    Method "get_symbol_prefix" cls sig => cls -> sig
+get_symbol_prefix = runMethod @"get_symbol_prefix"
+
+get_system_dir :: Method "get_system_dir" cls sig => cls -> sig
+get_system_dir = runMethod @"get_system_dir"
+
+get_system_time_secs ::
+                       Method "get_system_time_secs" cls sig => cls -> sig
+get_system_time_secs = runMethod @"get_system_time_secs"
+
+get_tab_align :: Method "get_tab_align" cls sig => cls -> sig
+get_tab_align = runMethod @"get_tab_align"
+
+get_tab_close_display_policy ::
+                               Method "get_tab_close_display_policy" cls sig => cls -> sig
+get_tab_close_display_policy
+  = runMethod @"get_tab_close_display_policy"
+
+get_tab_control :: Method "get_tab_control" cls sig => cls -> sig
+get_tab_control = runMethod @"get_tab_control"
+
+get_tab_count :: Method "get_tab_count" cls sig => cls -> sig
+get_tab_count = runMethod @"get_tab_count"
+
+get_tab_disabled :: Method "get_tab_disabled" cls sig => cls -> sig
+get_tab_disabled = runMethod @"get_tab_disabled"
+
+get_tab_icon :: Method "get_tab_icon" cls sig => cls -> sig
+get_tab_icon = runMethod @"get_tab_icon"
+
+get_tab_offset :: Method "get_tab_offset" cls sig => cls -> sig
+get_tab_offset = runMethod @"get_tab_offset"
+
+get_tab_rect :: Method "get_tab_rect" cls sig => cls -> sig
+get_tab_rect = runMethod @"get_tab_rect"
+
+get_tab_size :: Method "get_tab_size" cls sig => cls -> sig
+get_tab_size = runMethod @"get_tab_size"
+
+get_tab_title :: Method "get_tab_title" cls sig => cls -> sig
+get_tab_title = runMethod @"get_tab_title"
+
+get_tabs_rearrange_group ::
+                           Method "get_tabs_rearrange_group" cls sig => cls -> sig
+get_tabs_rearrange_group = runMethod @"get_tabs_rearrange_group"
+
+get_tap1_delay_ms ::
+                    Method "get_tap1_delay_ms" cls sig => cls -> sig
+get_tap1_delay_ms = runMethod @"get_tap1_delay_ms"
+
+get_tap1_level_db ::
+                    Method "get_tap1_level_db" cls sig => cls -> sig
+get_tap1_level_db = runMethod @"get_tap1_level_db"
+
+get_tap1_pan :: Method "get_tap1_pan" cls sig => cls -> sig
+get_tap1_pan = runMethod @"get_tap1_pan"
+
+get_tap2_delay_ms ::
+                    Method "get_tap2_delay_ms" cls sig => cls -> sig
+get_tap2_delay_ms = runMethod @"get_tap2_delay_ms"
+
+get_tap2_level_db ::
+                    Method "get_tap2_level_db" cls sig => cls -> sig
+get_tap2_level_db = runMethod @"get_tap2_level_db"
+
+get_tap2_pan :: Method "get_tap2_pan" cls sig => cls -> sig
+get_tap2_pan = runMethod @"get_tap2_pan"
+
+get_target_fps :: Method "get_target_fps" cls sig => cls -> sig
+get_target_fps = runMethod @"get_target_fps"
+
+get_target_node :: Method "get_target_node" cls sig => cls -> sig
+get_target_node = runMethod @"get_target_node"
+
+get_target_path :: Method "get_target_path" cls sig => cls -> sig
+get_target_path = runMethod @"get_target_path"
+
+get_target_transform ::
+                       Method "get_target_transform" cls sig => cls -> sig
+get_target_transform = runMethod @"get_target_transform"
+
+get_test_cube :: Method "get_test_cube" cls sig => cls -> sig
+get_test_cube = runMethod @"get_test_cube"
+
+get_test_texture :: Method "get_test_texture" cls sig => cls -> sig
+get_test_texture = runMethod @"get_test_texture"
+
+get_text :: Method "get_text" cls sig => cls -> sig
+get_text = runMethod @"get_text"
+
+get_text_align :: Method "get_text_align" cls sig => cls -> sig
+get_text_align = runMethod @"get_text_align"
+
+get_texture :: Method "get_texture" cls sig => cls -> sig
+get_texture = runMethod @"get_texture"
+
+get_texture_count ::
+                    Method "get_texture_count" cls sig => cls -> sig
+get_texture_count = runMethod @"get_texture_count"
+
+get_texture_mode :: Method "get_texture_mode" cls sig => cls -> sig
+get_texture_mode = runMethod @"get_texture_mode"
+
+get_texture_offset ::
+                     Method "get_texture_offset" cls sig => cls -> sig
+get_texture_offset = runMethod @"get_texture_offset"
+
+get_texture_pressed ::
+                      Method "get_texture_pressed" cls sig => cls -> sig
+get_texture_pressed = runMethod @"get_texture_pressed"
+
+get_texture_rotation ::
+                       Method "get_texture_rotation" cls sig => cls -> sig
+get_texture_rotation = runMethod @"get_texture_rotation"
+
+get_texture_rotation_degrees ::
+                               Method "get_texture_rotation_degrees" cls sig => cls -> sig
+get_texture_rotation_degrees
+  = runMethod @"get_texture_rotation_degrees"
+
+get_texture_scale ::
+                    Method "get_texture_scale" cls sig => cls -> sig
+get_texture_scale = runMethod @"get_texture_scale"
+
+get_texture_size :: Method "get_texture_size" cls sig => cls -> sig
+get_texture_size = runMethod @"get_texture_size"
+
+get_texture_type :: Method "get_texture_type" cls sig => cls -> sig
+get_texture_type = runMethod @"get_texture_type"
+
+get_theme :: Method "get_theme" cls sig => cls -> sig
+get_theme = runMethod @"get_theme"
+
+get_thickness :: Method "get_thickness" cls sig => cls -> sig
+get_thickness = runMethod @"get_thickness"
+
+get_threshold :: Method "get_threshold" cls sig => cls -> sig
+get_threshold = runMethod @"get_threshold"
+
+get_threshold_db :: Method "get_threshold_db" cls sig => cls -> sig
+get_threshold_db = runMethod @"get_threshold_db"
+
+get_ticks :: Method "get_ticks" cls sig => cls -> sig
+get_ticks = runMethod @"get_ticks"
+
+get_ticks_msec :: Method "get_ticks_msec" cls sig => cls -> sig
+get_ticks_msec = runMethod @"get_ticks_msec"
+
+get_ticks_on_borders ::
+                       Method "get_ticks_on_borders" cls sig => cls -> sig
+get_ticks_on_borders = runMethod @"get_ticks_on_borders"
+
+get_ticks_usec :: Method "get_ticks_usec" cls sig => cls -> sig
+get_ticks_usec = runMethod @"get_ticks_usec"
+
+get_tile_origin :: Method "get_tile_origin" cls sig => cls -> sig
+get_tile_origin = runMethod @"get_tile_origin"
+
+get_tiles_ids :: Method "get_tiles_ids" cls sig => cls -> sig
+get_tiles_ids = runMethod @"get_tiles_ids"
+
+get_tileset :: Method "get_tileset" cls sig => cls -> sig
+get_tileset = runMethod @"get_tileset"
+
+get_time :: Method "get_time" cls sig => cls -> sig
+get_time = runMethod @"get_time"
+
+get_time_left :: Method "get_time_left" cls sig => cls -> sig
+get_time_left = runMethod @"get_time_left"
+
+get_time_pullout :: Method "get_time_pullout" cls sig => cls -> sig
+get_time_pullout = runMethod @"get_time_pullout"
+
+get_time_scale :: Method "get_time_scale" cls sig => cls -> sig
+get_time_scale = runMethod @"get_time_scale"
+
+get_time_zone_info ::
+                     Method "get_time_zone_info" cls sig => cls -> sig
+get_time_zone_info = runMethod @"get_time_zone_info"
+
+get_timer_process_mode ::
+                         Method "get_timer_process_mode" cls sig => cls -> sig
+get_timer_process_mode = runMethod @"get_timer_process_mode"
+
+get_tint_over :: Method "get_tint_over" cls sig => cls -> sig
+get_tint_over = runMethod @"get_tint_over"
+
+get_tint_progress ::
+                    Method "get_tint_progress" cls sig => cls -> sig
+get_tint_progress = runMethod @"get_tint_progress"
+
+get_tint_under :: Method "get_tint_under" cls sig => cls -> sig
+get_tint_under = runMethod @"get_tint_under"
+
+get_tip_bone :: Method "get_tip_bone" cls sig => cls -> sig
+get_tip_bone = runMethod @"get_tip_bone"
+
+get_title :: Method "get_title" cls sig => cls -> sig
+get_title = runMethod @"get_title"
+
+get_to_cell_xform ::
+                    Method "get_to_cell_xform" cls sig => cls -> sig
+get_to_cell_xform = runMethod @"get_to_cell_xform"
+
+get_tonemap_auto_exposure ::
+                            Method "get_tonemap_auto_exposure" cls sig => cls -> sig
+get_tonemap_auto_exposure = runMethod @"get_tonemap_auto_exposure"
+
+get_tonemap_auto_exposure_grey ::
+                                 Method "get_tonemap_auto_exposure_grey" cls sig => cls -> sig
+get_tonemap_auto_exposure_grey
+  = runMethod @"get_tonemap_auto_exposure_grey"
+
+get_tonemap_auto_exposure_max ::
+                                Method "get_tonemap_auto_exposure_max" cls sig => cls -> sig
+get_tonemap_auto_exposure_max
+  = runMethod @"get_tonemap_auto_exposure_max"
+
+get_tonemap_auto_exposure_min ::
+                                Method "get_tonemap_auto_exposure_min" cls sig => cls -> sig
+get_tonemap_auto_exposure_min
+  = runMethod @"get_tonemap_auto_exposure_min"
+
+get_tonemap_auto_exposure_speed ::
+                                  Method "get_tonemap_auto_exposure_speed" cls sig => cls -> sig
+get_tonemap_auto_exposure_speed
+  = runMethod @"get_tonemap_auto_exposure_speed"
+
+get_tonemap_exposure ::
+                       Method "get_tonemap_exposure" cls sig => cls -> sig
+get_tonemap_exposure = runMethod @"get_tonemap_exposure"
+
+get_tonemap_white ::
+                    Method "get_tonemap_white" cls sig => cls -> sig
+get_tonemap_white = runMethod @"get_tonemap_white"
+
+get_tonemapper :: Method "get_tonemapper" cls sig => cls -> sig
+get_tonemapper = runMethod @"get_tonemapper"
+
+get_tooltip :: Method "get_tooltip" cls sig => cls -> sig
+get_tooltip = runMethod @"get_tooltip"
+
+get_tooltip_text :: Method "get_tooltip_text" cls sig => cls -> sig
+get_tooltip_text = runMethod @"get_tooltip_text"
+
+get_top_radius :: Method "get_top_radius" cls sig => cls -> sig
+get_top_radius = runMethod @"get_top_radius"
+
+get_total_angular_damp ::
+                         Method "get_total_angular_damp" cls sig => cls -> sig
+get_total_angular_damp = runMethod @"get_total_angular_damp"
+
+get_total_character_count ::
+                            Method "get_total_character_count" cls sig => cls -> sig
+get_total_character_count = runMethod @"get_total_character_count"
+
+get_total_gravity ::
+                    Method "get_total_gravity" cls sig => cls -> sig
+get_total_gravity = runMethod @"get_total_gravity"
+
+get_total_linear_damp ::
+                        Method "get_total_linear_damp" cls sig => cls -> sig
+get_total_linear_damp = runMethod @"get_total_linear_damp"
+
+get_total_mass :: Method "get_total_mass" cls sig => cls -> sig
+get_total_mass = runMethod @"get_total_mass"
+
+get_track_count :: Method "get_track_count" cls sig => cls -> sig
+get_track_count = runMethod @"get_track_count"
+
+get_tracked_linear_velocity ::
+                              Method "get_tracked_linear_velocity" cls sig => cls -> sig
+get_tracked_linear_velocity
+  = runMethod @"get_tracked_linear_velocity"
+
+get_tracker :: Method "get_tracker" cls sig => cls -> sig
+get_tracker = runMethod @"get_tracker"
+
+get_tracker_count ::
+                    Method "get_tracker_count" cls sig => cls -> sig
+get_tracker_count = runMethod @"get_tracker_count"
+
+get_tracking_status ::
+                      Method "get_tracking_status" cls sig => cls -> sig
+get_tracking_status = runMethod @"get_tracking_status"
+
+get_tracks_orientation ::
+                         Method "get_tracks_orientation" cls sig => cls -> sig
+get_tracks_orientation = runMethod @"get_tracks_orientation"
+
+get_tracks_position ::
+                      Method "get_tracks_position" cls sig => cls -> sig
+get_tracks_position = runMethod @"get_tracks_position"
+
+get_trail_color_modifier ::
+                           Method "get_trail_color_modifier" cls sig => cls -> sig
+get_trail_color_modifier = runMethod @"get_trail_color_modifier"
+
+get_trail_divisor ::
+                    Method "get_trail_divisor" cls sig => cls -> sig
+get_trail_divisor = runMethod @"get_trail_divisor"
+
+get_trail_size_modifier ::
+                          Method "get_trail_size_modifier" cls sig => cls -> sig
+get_trail_size_modifier = runMethod @"get_trail_size_modifier"
+
+get_transfer_channel ::
+                       Method "get_transfer_channel" cls sig => cls -> sig
+get_transfer_channel = runMethod @"get_transfer_channel"
+
+get_transfer_mode ::
+                    Method "get_transfer_mode" cls sig => cls -> sig
+get_transfer_mode = runMethod @"get_transfer_mode"
+
+get_transform :: Method "get_transform" cls sig => cls -> sig
+get_transform = runMethod @"get_transform"
+
+get_transform_format ::
+                       Method "get_transform_format" cls sig => cls -> sig
+get_transform_format = runMethod @"get_transform_format"
+
+get_transformable_selected_nodes ::
+                                   Method "get_transformable_selected_nodes" cls sig => cls -> sig
+get_transformable_selected_nodes
+  = runMethod @"get_transformable_selected_nodes"
+
+get_transformed_aabb ::
+                       Method "get_transformed_aabb" cls sig => cls -> sig
+get_transformed_aabb = runMethod @"get_transformed_aabb"
+
+get_transition :: Method "get_transition" cls sig => cls -> sig
+get_transition = runMethod @"get_transition"
+
+get_transition_count ::
+                       Method "get_transition_count" cls sig => cls -> sig
+get_transition_count = runMethod @"get_transition_count"
+
+get_transition_from ::
+                      Method "get_transition_from" cls sig => cls -> sig
+get_transition_from = runMethod @"get_transition_from"
+
+get_transition_to ::
+                    Method "get_transition_to" cls sig => cls -> sig
+get_transition_to = runMethod @"get_transition_to"
+
+get_translation :: Method "get_translation" cls sig => cls -> sig
+get_translation = runMethod @"get_translation"
+
+get_transmission :: Method "get_transmission" cls sig => cls -> sig
+get_transmission = runMethod @"get_transmission"
+
+get_travel :: Method "get_travel" cls sig => cls -> sig
+get_travel = runMethod @"get_travel"
+
+get_travel_path :: Method "get_travel_path" cls sig => cls -> sig
+get_travel_path = runMethod @"get_travel_path"
+
+get_tree :: Method "get_tree" cls sig => cls -> sig
+get_tree = runMethod @"get_tree"
+
+get_tree_root :: Method "get_tree_root" cls sig => cls -> sig
+get_tree_root = runMethod @"get_tree_root"
+
+get_triangle_count ::
+                     Method "get_triangle_count" cls sig => cls -> sig
+get_triangle_count = runMethod @"get_triangle_count"
+
+get_triangle_point ::
+                     Method "get_triangle_point" cls sig => cls -> sig
+get_triangle_point = runMethod @"get_triangle_point"
+
+get_true_bit_count ::
+                     Method "get_true_bit_count" cls sig => cls -> sig
+get_true_bit_count = runMethod @"get_true_bit_count"
+
+get_tween_process_mode ::
+                         Method "get_tween_process_mode" cls sig => cls -> sig
+get_tween_process_mode = runMethod @"get_tween_process_mode"
+
+get_type :: Method "get_type" cls sig => cls -> sig
+get_type = runMethod @"get_type"
+
+get_type_list :: Method "get_type_list" cls sig => cls -> sig
+get_type_list = runMethod @"get_type_list"
+
+get_typed :: Method "get_typed" cls sig => cls -> sig
+get_typed = runMethod @"get_typed"
+
+get_u16 :: Method "get_u16" cls sig => cls -> sig
+get_u16 = runMethod @"get_u16"
+
+get_u32 :: Method "get_u32" cls sig => cls -> sig
+get_u32 = runMethod @"get_u32"
+
+get_u64 :: Method "get_u64" cls sig => cls -> sig
+get_u64 = runMethod @"get_u64"
+
+get_u8 :: Method "get_u8" cls sig => cls -> sig
+get_u8 = runMethod @"get_u8"
+
+get_under_texture ::
+                    Method "get_under_texture" cls sig => cls -> sig
+get_under_texture = runMethod @"get_under_texture"
+
+get_underline_mode ::
+                     Method "get_underline_mode" cls sig => cls -> sig
+get_underline_mode = runMethod @"get_underline_mode"
+
+get_undo_redo :: Method "get_undo_redo" cls sig => cls -> sig
+get_undo_redo = runMethod @"get_undo_redo"
+
+get_unicode :: Method "get_unicode" cls sig => cls -> sig
+get_unicode = runMethod @"get_unicode"
+
+get_uniform_name :: Method "get_uniform_name" cls sig => cls -> sig
+get_uniform_name = runMethod @"get_uniform_name"
+
+get_unique_id :: Method "get_unique_id" cls sig => cls -> sig
+get_unique_id = runMethod @"get_unique_id"
+
+get_unit_db :: Method "get_unit_db" cls sig => cls -> sig
+get_unit_db = runMethod @"get_unit_db"
+
+get_unit_offset :: Method "get_unit_offset" cls sig => cls -> sig
+get_unit_offset = runMethod @"get_unit_offset"
+
+get_unit_size :: Method "get_unit_size" cls sig => cls -> sig
+get_unit_size = runMethod @"get_unit_size"
+
+get_unix_time :: Method "get_unix_time" cls sig => cls -> sig
+get_unix_time = runMethod @"get_unix_time"
+
+get_unix_time_from_datetime ::
+                              Method "get_unix_time_from_datetime" cls sig => cls -> sig
+get_unix_time_from_datetime
+  = runMethod @"get_unix_time_from_datetime"
+
+get_up_vector :: Method "get_up_vector" cls sig => cls -> sig
+get_up_vector = runMethod @"get_up_vector"
+
+get_update_mode :: Method "get_update_mode" cls sig => cls -> sig
+get_update_mode = runMethod @"get_update_mode"
+
+get_update_position ::
+                      Method "get_update_position" cls sig => cls -> sig
+get_update_position = runMethod @"get_update_position"
+
+get_update_rotation ::
+                      Method "get_update_rotation" cls sig => cls -> sig
+get_update_rotation = runMethod @"get_update_rotation"
+
+get_update_scale :: Method "get_update_scale" cls sig => cls -> sig
+get_update_scale = runMethod @"get_update_scale"
+
+get_usage :: Method "get_usage" cls sig => cls -> sig
+get_usage = runMethod @"get_usage"
+
+get_use_default_args ::
+                       Method "get_use_default_args" cls sig => cls -> sig
+get_use_default_args = runMethod @"get_use_default_args"
+
+get_use_filter :: Method "get_use_filter" cls sig => cls -> sig
+get_use_filter = runMethod @"get_use_filter"
+
+get_use_global_coordinates ::
+                             Method "get_use_global_coordinates" cls sig => cls -> sig
+get_use_global_coordinates
+  = runMethod @"get_use_global_coordinates"
+
+get_use_local_coordinates ::
+                            Method "get_use_local_coordinates" cls sig => cls -> sig
+get_use_local_coordinates = runMethod @"get_use_local_coordinates"
+
+get_use_mipmaps :: Method "get_use_mipmaps" cls sig => cls -> sig
+get_use_mipmaps = runMethod @"get_use_mipmaps"
+
+get_use_parent_material ::
+                          Method "get_use_parent_material" cls sig => cls -> sig
+get_use_parent_material = runMethod @"get_use_parent_material"
+
+get_used_cells :: Method "get_used_cells" cls sig => cls -> sig
+get_used_cells = runMethod @"get_used_cells"
+
+get_used_cells_by_id ::
+                       Method "get_used_cells_by_id" cls sig => cls -> sig
+get_used_cells_by_id = runMethod @"get_used_cells_by_id"
+
+get_used_rect :: Method "get_used_rect" cls sig => cls -> sig
+get_used_rect = runMethod @"get_used_rect"
+
+get_user_count :: Method "get_user_count" cls sig => cls -> sig
+get_user_count = runMethod @"get_user_count"
+
+get_user_data_dir ::
+                    Method "get_user_data_dir" cls sig => cls -> sig
+get_user_data_dir = runMethod @"get_user_data_dir"
+
+get_user_lightmap ::
+                    Method "get_user_lightmap" cls sig => cls -> sig
+get_user_lightmap = runMethod @"get_user_lightmap"
+
+get_user_path :: Method "get_user_path" cls sig => cls -> sig
+get_user_path = runMethod @"get_user_path"
+
+get_utf8_string :: Method "get_utf8_string" cls sig => cls -> sig
+get_utf8_string = runMethod @"get_utf8_string"
+
+get_uv :: Method "get_uv" cls sig => cls -> sig
+get_uv = runMethod @"get_uv"
+
+get_uv1_offset :: Method "get_uv1_offset" cls sig => cls -> sig
+get_uv1_offset = runMethod @"get_uv1_offset"
+
+get_uv1_scale :: Method "get_uv1_scale" cls sig => cls -> sig
+get_uv1_scale = runMethod @"get_uv1_scale"
+
+get_uv1_triplanar_blend_sharpness ::
+                                    Method "get_uv1_triplanar_blend_sharpness" cls sig => cls -> sig
+get_uv1_triplanar_blend_sharpness
+  = runMethod @"get_uv1_triplanar_blend_sharpness"
+
+get_uv2_offset :: Method "get_uv2_offset" cls sig => cls -> sig
+get_uv2_offset = runMethod @"get_uv2_offset"
+
+get_uv2_scale :: Method "get_uv2_scale" cls sig => cls -> sig
+get_uv2_scale = runMethod @"get_uv2_scale"
+
+get_uv2_triplanar_blend_sharpness ::
+                                    Method "get_uv2_triplanar_blend_sharpness" cls sig => cls -> sig
+get_uv2_triplanar_blend_sharpness
+  = runMethod @"get_uv2_triplanar_blend_sharpness"
+
+get_uv84_normal_bit ::
+                      Method "get_uv84_normal_bit" cls sig => cls -> sig
+get_uv84_normal_bit = runMethod @"get_uv84_normal_bit"
+
+get_v_axis_stretch_mode ::
+                          Method "get_v_axis_stretch_mode" cls sig => cls -> sig
+get_v_axis_stretch_mode = runMethod @"get_v_axis_stretch_mode"
+
+get_v_frames :: Method "get_v_frames" cls sig => cls -> sig
+get_v_frames = runMethod @"get_v_frames"
+
+get_v_grow_direction ::
+                       Method "get_v_grow_direction" cls sig => cls -> sig
+get_v_grow_direction = runMethod @"get_v_grow_direction"
+
+get_v_offset :: Method "get_v_offset" cls sig => cls -> sig
+get_v_offset = runMethod @"get_v_offset"
+
+get_v_scroll :: Method "get_v_scroll" cls sig => cls -> sig
+get_v_scroll = runMethod @"get_v_scroll"
+
+get_v_scroll_speed ::
+                     Method "get_v_scroll_speed" cls sig => cls -> sig
+get_v_scroll_speed = runMethod @"get_v_scroll_speed"
+
+get_v_scrollbar :: Method "get_v_scrollbar" cls sig => cls -> sig
+get_v_scrollbar = runMethod @"get_v_scrollbar"
+
+get_v_size_flags :: Method "get_v_size_flags" cls sig => cls -> sig
+get_v_size_flags = runMethod @"get_v_size_flags"
+
+get_valid_node_id ::
+                    Method "get_valid_node_id" cls sig => cls -> sig
+get_valid_node_id = runMethod @"get_valid_node_id"
+
+get_validate :: Method "get_validate" cls sig => cls -> sig
+get_validate = runMethod @"get_validate"
+
+get_valign :: Method "get_valign" cls sig => cls -> sig
+get_valign = runMethod @"get_valign"
+
+get_value :: Method "get_value" cls sig => cls -> sig
+get_value = runMethod @"get_value"
+
+get_value_label :: Method "get_value_label" cls sig => cls -> sig
+get_value_label = runMethod @"get_value_label"
+
+get_var :: Method "get_var" cls sig => cls -> sig
+get_var = runMethod @"get_var"
+
+get_var_name :: Method "get_var_name" cls sig => cls -> sig
+get_var_name = runMethod @"get_var_name"
+
+get_var_type :: Method "get_var_type" cls sig => cls -> sig
+get_var_type = runMethod @"get_var_type"
+
+get_variable :: Method "get_variable" cls sig => cls -> sig
+get_variable = runMethod @"get_variable"
+
+get_variable_default_value ::
+                             Method "get_variable_default_value" cls sig => cls -> sig
+get_variable_default_value
+  = runMethod @"get_variable_default_value"
+
+get_variable_export ::
+                      Method "get_variable_export" cls sig => cls -> sig
+get_variable_export = runMethod @"get_variable_export"
+
+get_variable_info ::
+                    Method "get_variable_info" cls sig => cls -> sig
+get_variable_info = runMethod @"get_variable_info"
+
+get_vbox :: Method "get_vbox" cls sig => cls -> sig
+get_vbox = runMethod @"get_vbox"
+
+get_version :: Method "get_version" cls sig => cls -> sig
+get_version = runMethod @"get_version"
+
+get_version_info :: Method "get_version_info" cls sig => cls -> sig
+get_version_info = runMethod @"get_version_info"
+
+get_vertex :: Method "get_vertex" cls sig => cls -> sig
+get_vertex = runMethod @"get_vertex"
+
+get_vertex_bones :: Method "get_vertex_bones" cls sig => cls -> sig
+get_vertex_bones = runMethod @"get_vertex_bones"
+
+get_vertex_color :: Method "get_vertex_color" cls sig => cls -> sig
+get_vertex_color = runMethod @"get_vertex_color"
+
+get_vertex_colors ::
+                    Method "get_vertex_colors" cls sig => cls -> sig
+get_vertex_colors = runMethod @"get_vertex_colors"
+
+get_vertex_count :: Method "get_vertex_count" cls sig => cls -> sig
+get_vertex_count = runMethod @"get_vertex_count"
+
+get_vertex_edges :: Method "get_vertex_edges" cls sig => cls -> sig
+get_vertex_edges = runMethod @"get_vertex_edges"
+
+get_vertex_faces :: Method "get_vertex_faces" cls sig => cls -> sig
+get_vertex_faces = runMethod @"get_vertex_faces"
+
+get_vertex_meta :: Method "get_vertex_meta" cls sig => cls -> sig
+get_vertex_meta = runMethod @"get_vertex_meta"
+
+get_vertex_normal ::
+                    Method "get_vertex_normal" cls sig => cls -> sig
+get_vertex_normal = runMethod @"get_vertex_normal"
+
+get_vertex_tangent ::
+                     Method "get_vertex_tangent" cls sig => cls -> sig
+get_vertex_tangent = runMethod @"get_vertex_tangent"
+
+get_vertex_uv :: Method "get_vertex_uv" cls sig => cls -> sig
+get_vertex_uv = runMethod @"get_vertex_uv"
+
+get_vertex_uv2 :: Method "get_vertex_uv2" cls sig => cls -> sig
+get_vertex_uv2 = runMethod @"get_vertex_uv2"
+
+get_vertex_weights ::
+                     Method "get_vertex_weights" cls sig => cls -> sig
+get_vertex_weights = runMethod @"get_vertex_weights"
+
+get_vertices :: Method "get_vertices" cls sig => cls -> sig
+get_vertices = runMethod @"get_vertices"
+
+get_verts_per_poly ::
+                     Method "get_verts_per_poly" cls sig => cls -> sig
+get_verts_per_poly = runMethod @"get_verts_per_poly"
+
+get_vflip :: Method "get_vflip" cls sig => cls -> sig
+get_vflip = runMethod @"get_vflip"
+
+get_vframes :: Method "get_vframes" cls sig => cls -> sig
+get_vframes = runMethod @"get_vframes"
+
+get_video_driver_count ::
+                         Method "get_video_driver_count" cls sig => cls -> sig
+get_video_driver_count = runMethod @"get_video_driver_count"
+
+get_video_driver_name ::
+                        Method "get_video_driver_name" cls sig => cls -> sig
+get_video_driver_name = runMethod @"get_video_driver_name"
+
+get_video_texture ::
+                    Method "get_video_texture" cls sig => cls -> sig
+get_video_texture = runMethod @"get_video_texture"
+
+get_viewport :: Method "get_viewport" cls sig => cls -> sig
+get_viewport = runMethod @"get_viewport"
+
+get_viewport_path_in_scene ::
+                             Method "get_viewport_path_in_scene" cls sig => cls -> sig
+get_viewport_path_in_scene
+  = runMethod @"get_viewport_path_in_scene"
+
+get_viewport_rect ::
+                    Method "get_viewport_rect" cls sig => cls -> sig
+get_viewport_rect = runMethod @"get_viewport_rect"
+
+get_viewport_rid :: Method "get_viewport_rid" cls sig => cls -> sig
+get_viewport_rid = runMethod @"get_viewport_rid"
+
+get_viewport_transform ::
+                         Method "get_viewport_transform" cls sig => cls -> sig
+get_viewport_transform = runMethod @"get_viewport_transform"
+
+get_virtual_keyboard_height ::
+                              Method "get_virtual_keyboard_height" cls sig => cls -> sig
+get_virtual_keyboard_height
+  = runMethod @"get_virtual_keyboard_height"
+
+get_visibility_aabb ::
+                      Method "get_visibility_aabb" cls sig => cls -> sig
+get_visibility_aabb = runMethod @"get_visibility_aabb"
+
+get_visibility_mode ::
+                      Method "get_visibility_mode" cls sig => cls -> sig
+get_visibility_mode = runMethod @"get_visibility_mode"
+
+get_visibility_rect ::
+                      Method "get_visibility_rect" cls sig => cls -> sig
+get_visibility_rect = runMethod @"get_visibility_rect"
+
+get_visible_characters ::
+                         Method "get_visible_characters" cls sig => cls -> sig
+get_visible_characters = runMethod @"get_visible_characters"
+
+get_visible_line_count ::
+                         Method "get_visible_line_count" cls sig => cls -> sig
+get_visible_line_count = runMethod @"get_visible_line_count"
+
+get_visible_name :: Method "get_visible_name" cls sig => cls -> sig
+get_visible_name = runMethod @"get_visible_name"
+
+get_visible_rect :: Method "get_visible_rect" cls sig => cls -> sig
+get_visible_rect = runMethod @"get_visible_rect"
+
+get_visual_script ::
+                    Method "get_visual_script" cls sig => cls -> sig
+get_visual_script = runMethod @"get_visual_script"
+
+get_voice_count :: Method "get_voice_count" cls sig => cls -> sig
+get_voice_count = runMethod @"get_voice_count"
+
+get_voice_cutoff_hz ::
+                      Method "get_voice_cutoff_hz" cls sig => cls -> sig
+get_voice_cutoff_hz = runMethod @"get_voice_cutoff_hz"
+
+get_voice_delay_ms ::
+                     Method "get_voice_delay_ms" cls sig => cls -> sig
+get_voice_delay_ms = runMethod @"get_voice_delay_ms"
+
+get_voice_depth_ms ::
+                     Method "get_voice_depth_ms" cls sig => cls -> sig
+get_voice_depth_ms = runMethod @"get_voice_depth_ms"
+
+get_voice_level_db ::
+                     Method "get_voice_level_db" cls sig => cls -> sig
+get_voice_level_db = runMethod @"get_voice_level_db"
+
+get_voice_pan :: Method "get_voice_pan" cls sig => cls -> sig
+get_voice_pan = runMethod @"get_voice_pan"
+
+get_voice_rate_hz ::
+                    Method "get_voice_rate_hz" cls sig => cls -> sig
+get_voice_rate_hz = runMethod @"get_voice_rate_hz"
+
+get_volume :: Method "get_volume" cls sig => cls -> sig
+get_volume = runMethod @"get_volume"
+
+get_volume_db :: Method "get_volume_db" cls sig => cls -> sig
+get_volume_db = runMethod @"get_volume_db"
+
+get_volume_stiffness ::
+                       Method "get_volume_stiffness" cls sig => cls -> sig
+get_volume_stiffness = runMethod @"get_volume_stiffness"
+
+get_wait_time :: Method "get_wait_time" cls sig => cls -> sig
+get_wait_time = runMethod @"get_wait_time"
+
+get_weight :: Method "get_weight" cls sig => cls -> sig
+get_weight = runMethod @"get_weight"
+
+get_wet :: Method "get_wet" cls sig => cls -> sig
+get_wet = runMethod @"get_wet"
+
+get_white_texture ::
+                    Method "get_white_texture" cls sig => cls -> sig
+get_white_texture = runMethod @"get_white_texture"
+
+get_width :: Method "get_width" cls sig => cls -> sig
+get_width = runMethod @"get_width"
+
+get_window_layout ::
+                    Method "get_window_layout" cls sig => cls -> sig
+get_window_layout = runMethod @"get_window_layout"
+
+get_window_per_pixel_transparency_enabled ::
+                                            Method "get_window_per_pixel_transparency_enabled" cls
+                                              sig =>
+                                            cls -> sig
+get_window_per_pixel_transparency_enabled
+  = runMethod @"get_window_per_pixel_transparency_enabled"
+
+get_window_position ::
+                      Method "get_window_position" cls sig => cls -> sig
+get_window_position = runMethod @"get_window_position"
+
+get_window_safe_area ::
+                       Method "get_window_safe_area" cls sig => cls -> sig
+get_window_safe_area = runMethod @"get_window_safe_area"
+
+get_window_size :: Method "get_window_size" cls sig => cls -> sig
+get_window_size = runMethod @"get_window_size"
+
+get_word_under_cursor ::
+                        Method "get_word_under_cursor" cls sig => cls -> sig
+get_word_under_cursor = runMethod @"get_word_under_cursor"
+
+get_world :: Method "get_world" cls sig => cls -> sig
+get_world = runMethod @"get_world"
+
+get_world_2d :: Method "get_world_2d" cls sig => cls -> sig
+get_world_2d = runMethod @"get_world_2d"
+
+get_world_scale :: Method "get_world_scale" cls sig => cls -> sig
+get_world_scale = runMethod @"get_world_scale"
+
+get_write_mode :: Method "get_write_mode" cls sig => cls -> sig
+get_write_mode = runMethod @"get_write_mode"
+
+get_x_label :: Method "get_x_label" cls sig => cls -> sig
+get_x_label = runMethod @"get_x_label"
+
+get_xfade_time :: Method "get_xfade_time" cls sig => cls -> sig
+get_xfade_time = runMethod @"get_xfade_time"
+
+get_y_label :: Method "get_y_label" cls sig => cls -> sig
+get_y_label = runMethod @"get_y_label"
+
+get_yield_mode :: Method "get_yield_mode" cls sig => cls -> sig
+get_yield_mode = runMethod @"get_yield_mode"
+
+get_z_index :: Method "get_z_index" cls sig => cls -> sig
+get_z_index = runMethod @"get_z_index"
+
+get_z_range_max :: Method "get_z_range_max" cls sig => cls -> sig
+get_z_range_max = runMethod @"get_z_range_max"
+
+get_z_range_min :: Method "get_z_range_min" cls sig => cls -> sig
+get_z_range_min = runMethod @"get_z_range_min"
+
+get_zero_y :: Method "get_zero_y" cls sig => cls -> sig
+get_zero_y = runMethod @"get_zero_y"
+
+get_zfar :: Method "get_zfar" cls sig => cls -> sig
+get_zfar = runMethod @"get_zfar"
+
+get_znear :: Method "get_znear" cls sig => cls -> sig
+get_znear = runMethod @"get_znear"
+
+get_zoom :: Method "get_zoom" cls sig => cls -> sig
+get_zoom = runMethod @"get_zoom"
+
+get_zoom_hbox :: Method "get_zoom_hbox" cls sig => cls -> sig
+get_zoom_hbox = runMethod @"get_zoom_hbox"
+
+gi_probe_create :: Method "gi_probe_create" cls sig => cls -> sig
+gi_probe_create = runMethod @"gi_probe_create"
+
+gi_probe_get_bias ::
+                    Method "gi_probe_get_bias" cls sig => cls -> sig
+gi_probe_get_bias = runMethod @"gi_probe_get_bias"
+
+gi_probe_get_bounds ::
+                      Method "gi_probe_get_bounds" cls sig => cls -> sig
+gi_probe_get_bounds = runMethod @"gi_probe_get_bounds"
+
+gi_probe_get_cell_size ::
+                         Method "gi_probe_get_cell_size" cls sig => cls -> sig
+gi_probe_get_cell_size = runMethod @"gi_probe_get_cell_size"
+
+gi_probe_get_dynamic_data ::
+                            Method "gi_probe_get_dynamic_data" cls sig => cls -> sig
+gi_probe_get_dynamic_data = runMethod @"gi_probe_get_dynamic_data"
+
+gi_probe_get_dynamic_range ::
+                             Method "gi_probe_get_dynamic_range" cls sig => cls -> sig
+gi_probe_get_dynamic_range
+  = runMethod @"gi_probe_get_dynamic_range"
+
+gi_probe_get_energy ::
+                      Method "gi_probe_get_energy" cls sig => cls -> sig
+gi_probe_get_energy = runMethod @"gi_probe_get_energy"
+
+gi_probe_get_normal_bias ::
+                           Method "gi_probe_get_normal_bias" cls sig => cls -> sig
+gi_probe_get_normal_bias = runMethod @"gi_probe_get_normal_bias"
+
+gi_probe_get_propagation ::
+                           Method "gi_probe_get_propagation" cls sig => cls -> sig
+gi_probe_get_propagation = runMethod @"gi_probe_get_propagation"
+
+gi_probe_get_to_cell_xform ::
+                             Method "gi_probe_get_to_cell_xform" cls sig => cls -> sig
+gi_probe_get_to_cell_xform
+  = runMethod @"gi_probe_get_to_cell_xform"
+
+gi_probe_is_compressed ::
+                         Method "gi_probe_is_compressed" cls sig => cls -> sig
+gi_probe_is_compressed = runMethod @"gi_probe_is_compressed"
+
+gi_probe_is_interior ::
+                       Method "gi_probe_is_interior" cls sig => cls -> sig
+gi_probe_is_interior = runMethod @"gi_probe_is_interior"
+
+gi_probe_set_bias ::
+                    Method "gi_probe_set_bias" cls sig => cls -> sig
+gi_probe_set_bias = runMethod @"gi_probe_set_bias"
+
+gi_probe_set_bounds ::
+                      Method "gi_probe_set_bounds" cls sig => cls -> sig
+gi_probe_set_bounds = runMethod @"gi_probe_set_bounds"
+
+gi_probe_set_cell_size ::
+                         Method "gi_probe_set_cell_size" cls sig => cls -> sig
+gi_probe_set_cell_size = runMethod @"gi_probe_set_cell_size"
+
+gi_probe_set_compress ::
+                        Method "gi_probe_set_compress" cls sig => cls -> sig
+gi_probe_set_compress = runMethod @"gi_probe_set_compress"
+
+gi_probe_set_dynamic_data ::
+                            Method "gi_probe_set_dynamic_data" cls sig => cls -> sig
+gi_probe_set_dynamic_data = runMethod @"gi_probe_set_dynamic_data"
+
+gi_probe_set_dynamic_range ::
+                             Method "gi_probe_set_dynamic_range" cls sig => cls -> sig
+gi_probe_set_dynamic_range
+  = runMethod @"gi_probe_set_dynamic_range"
+
+gi_probe_set_energy ::
+                      Method "gi_probe_set_energy" cls sig => cls -> sig
+gi_probe_set_energy = runMethod @"gi_probe_set_energy"
+
+gi_probe_set_interior ::
+                        Method "gi_probe_set_interior" cls sig => cls -> sig
+gi_probe_set_interior = runMethod @"gi_probe_set_interior"
+
+gi_probe_set_normal_bias ::
+                           Method "gi_probe_set_normal_bias" cls sig => cls -> sig
+gi_probe_set_normal_bias = runMethod @"gi_probe_set_normal_bias"
+
+gi_probe_set_propagation ::
+                           Method "gi_probe_set_propagation" cls sig => cls -> sig
+gi_probe_set_propagation = runMethod @"gi_probe_set_propagation"
+
+gi_probe_set_to_cell_xform ::
+                             Method "gi_probe_set_to_cell_xform" cls sig => cls -> sig
+gi_probe_set_to_cell_xform
+  = runMethod @"gi_probe_set_to_cell_xform"
+
+global_rotate :: Method "global_rotate" cls sig => cls -> sig
+global_rotate = runMethod @"global_rotate"
+
+global_scale :: Method "global_scale" cls sig => cls -> sig
+global_scale = runMethod @"global_scale"
+
+global_translate :: Method "global_translate" cls sig => cls -> sig
+global_translate = runMethod @"global_translate"
+
+globalize_path :: Method "globalize_path" cls sig => cls -> sig
+globalize_path = runMethod @"globalize_path"
+
+grab_click_focus :: Method "grab_click_focus" cls sig => cls -> sig
+grab_click_focus = runMethod @"grab_click_focus"
+
+grab_focus :: Method "grab_focus" cls sig => cls -> sig
+grab_focus = runMethod @"grab_focus"
+
+groove_joint_create ::
+                      Method "groove_joint_create" cls sig => cls -> sig
+groove_joint_create = runMethod @"groove_joint_create"
+
+grow_mask :: Method "grow_mask" cls sig => cls -> sig
+grow_mask = runMethod @"grow_mask"
+
+gui_get_drag_data ::
+                    Method "gui_get_drag_data" cls sig => cls -> sig
+gui_get_drag_data = runMethod @"gui_get_drag_data"
+
+gui_has_modal_stack ::
+                      Method "gui_has_modal_stack" cls sig => cls -> sig
+gui_has_modal_stack = runMethod @"gui_has_modal_stack"
+
+gui_is_dragging :: Method "gui_is_dragging" cls sig => cls -> sig
+gui_is_dragging = runMethod @"gui_is_dragging"
+
+handles :: Method "handles" cls sig => cls -> sig
+handles = runMethod @"handles"
+
+has :: Method "has" cls sig => cls -> sig
+has = runMethod @"has"
+
+has_action :: Method "has_action" cls sig => cls -> sig
+has_action = runMethod @"has_action"
+
+has_alpha :: Method "has_alpha" cls sig => cls -> sig
+has_alpha = runMethod @"has_alpha"
+
+has_animation :: Method "has_animation" cls sig => cls -> sig
+has_animation = runMethod @"has_animation"
+
+has_attribute :: Method "has_attribute" cls sig => cls -> sig
+has_attribute = runMethod @"has_attribute"
+
+has_auto_advance :: Method "has_auto_advance" cls sig => cls -> sig
+has_auto_advance = runMethod @"has_auto_advance"
+
+has_auto_height :: Method "has_auto_height" cls sig => cls -> sig
+has_auto_height = runMethod @"has_auto_height"
+
+has_autoplay :: Method "has_autoplay" cls sig => cls -> sig
+has_autoplay = runMethod @"has_autoplay"
+
+has_autorestart :: Method "has_autorestart" cls sig => cls -> sig
+has_autorestart = runMethod @"has_autorestart"
+
+has_autostart :: Method "has_autostart" cls sig => cls -> sig
+has_autostart = runMethod @"has_autostart"
+
+has_autowrap :: Method "has_autowrap" cls sig => cls -> sig
+has_autowrap = runMethod @"has_autowrap"
+
+has_cached :: Method "has_cached" cls sig => cls -> sig
+has_cached = runMethod @"has_cached"
+
+has_changed :: Method "has_changed" cls sig => cls -> sig
+has_changed = runMethod @"has_changed"
+
+has_color :: Method "has_color" cls sig => cls -> sig
+has_color = runMethod @"has_color"
+
+has_color_override ::
+                     Method "has_color_override" cls sig => cls -> sig
+has_color_override = runMethod @"has_color_override"
+
+has_constant :: Method "has_constant" cls sig => cls -> sig
+has_constant = runMethod @"has_constant"
+
+has_constant_override ::
+                        Method "has_constant_override" cls sig => cls -> sig
+has_constant_override = runMethod @"has_constant_override"
+
+has_custom_signal ::
+                    Method "has_custom_signal" cls sig => cls -> sig
+has_custom_signal = runMethod @"has_custom_signal"
+
+has_data_connection ::
+                      Method "has_data_connection" cls sig => cls -> sig
+has_data_connection = runMethod @"has_data_connection"
+
+has_environment :: Method "has_environment" cls sig => cls -> sig
+has_environment = runMethod @"has_environment"
+
+has_execute_failed ::
+                     Method "has_execute_failed" cls sig => cls -> sig
+has_execute_failed = runMethod @"has_execute_failed"
+
+has_expand :: Method "has_expand" cls sig => cls -> sig
+has_expand = runMethod @"has_expand"
+
+has_feature :: Method "has_feature" cls sig => cls -> sig
+has_feature = runMethod @"has_feature"
+
+has_filter :: Method "has_filter" cls sig => cls -> sig
+has_filter = runMethod @"has_filter"
+
+has_filter_clip :: Method "has_filter_clip" cls sig => cls -> sig
+has_filter_clip = runMethod @"has_filter_clip"
+
+has_focus :: Method "has_focus" cls sig => cls -> sig
+has_focus = runMethod @"has_focus"
+
+has_font :: Method "has_font" cls sig => cls -> sig
+has_font = runMethod @"has_font"
+
+has_font_override ::
+                    Method "has_font_override" cls sig => cls -> sig
+has_font_override = runMethod @"has_font_override"
+
+has_function :: Method "has_function" cls sig => cls -> sig
+has_function = runMethod @"has_function"
+
+has_group :: Method "has_group" cls sig => cls -> sig
+has_group = runMethod @"has_group"
+
+has_icon :: Method "has_icon" cls sig => cls -> sig
+has_icon = runMethod @"has_icon"
+
+has_icon_override ::
+                    Method "has_icon_override" cls sig => cls -> sig
+has_icon_override = runMethod @"has_icon_override"
+
+has_keyword_color ::
+                    Method "has_keyword_color" cls sig => cls -> sig
+has_keyword_color = runMethod @"has_keyword_color"
+
+has_loop :: Method "has_loop" cls sig => cls -> sig
+has_loop = runMethod @"has_loop"
+
+has_main_screen :: Method "has_main_screen" cls sig => cls -> sig
+has_main_screen = runMethod @"has_main_screen"
+
+has_meta :: Method "has_meta" cls sig => cls -> sig
+has_meta = runMethod @"has_meta"
+
+has_method :: Method "has_method" cls sig => cls -> sig
+has_method = runMethod @"has_method"
+
+has_mipmaps :: Method "has_mipmaps" cls sig => cls -> sig
+has_mipmaps = runMethod @"has_mipmaps"
+
+has_network_peer :: Method "has_network_peer" cls sig => cls -> sig
+has_network_peer = runMethod @"has_network_peer"
+
+has_node :: Method "has_node" cls sig => cls -> sig
+has_node = runMethod @"has_node"
+
+has_node_and_resource ::
+                        Method "has_node_and_resource" cls sig => cls -> sig
+has_node_and_resource = runMethod @"has_node_and_resource"
+
+has_os_feature :: Method "has_os_feature" cls sig => cls -> sig
+has_os_feature = runMethod @"has_os_feature"
+
+has_outline :: Method "has_outline" cls sig => cls -> sig
+has_outline = runMethod @"has_outline"
+
+has_param :: Method "has_param" cls sig => cls -> sig
+has_param = runMethod @"has_param"
+
+has_peer :: Method "has_peer" cls sig => cls -> sig
+has_peer = runMethod @"has_peer"
+
+has_point :: Method "has_point" cls sig => cls -> sig
+has_point = runMethod @"has_point"
+
+has_resource :: Method "has_resource" cls sig => cls -> sig
+has_resource = runMethod @"has_resource"
+
+has_response :: Method "has_response" cls sig => cls -> sig
+has_response = runMethod @"has_response"
+
+has_script_signal ::
+                    Method "has_script_signal" cls sig => cls -> sig
+has_script_signal = runMethod @"has_script_signal"
+
+has_section :: Method "has_section" cls sig => cls -> sig
+has_section = runMethod @"has_section"
+
+has_section_key :: Method "has_section_key" cls sig => cls -> sig
+has_section_key = runMethod @"has_section_key"
+
+has_sequence_connection ::
+                          Method "has_sequence_connection" cls sig => cls -> sig
+has_sequence_connection = runMethod @"has_sequence_connection"
+
+has_setting :: Method "has_setting" cls sig => cls -> sig
+has_setting = runMethod @"has_setting"
+
+has_shader_override ::
+                      Method "has_shader_override" cls sig => cls -> sig
+has_shader_override = runMethod @"has_shader_override"
+
+has_shadow :: Method "has_shadow" cls sig => cls -> sig
+has_shadow = runMethod @"has_shadow"
+
+has_singleton :: Method "has_singleton" cls sig => cls -> sig
+has_singleton = runMethod @"has_singleton"
+
+has_source_code :: Method "has_source_code" cls sig => cls -> sig
+has_source_code = runMethod @"has_source_code"
+
+has_stylebox :: Method "has_stylebox" cls sig => cls -> sig
+has_stylebox = runMethod @"has_stylebox"
+
+has_stylebox_override ::
+                        Method "has_stylebox_override" cls sig => cls -> sig
+has_stylebox_override = runMethod @"has_stylebox_override"
+
+has_touchscreen_ui_hint ::
+                          Method "has_touchscreen_ui_hint" cls sig => cls -> sig
+has_touchscreen_ui_hint = runMethod @"has_touchscreen_ui_hint"
+
+has_transition :: Method "has_transition" cls sig => cls -> sig
+has_transition = runMethod @"has_transition"
+
+has_transparent_background ::
+                             Method "has_transparent_background" cls sig => cls -> sig
+has_transparent_background
+  = runMethod @"has_transparent_background"
+
+has_user_signal :: Method "has_user_signal" cls sig => cls -> sig
+has_user_signal = runMethod @"has_user_signal"
+
+has_variable :: Method "has_variable" cls sig => cls -> sig
+has_variable = runMethod @"has_variable"
+
+has_virtual_keyboard ::
+                       Method "has_virtual_keyboard" cls sig => cls -> sig
+has_virtual_keyboard = runMethod @"has_virtual_keyboard"
+
+hide :: Method "hide" cls sig => cls -> sig
+hide = runMethod @"hide"
+
+hide_bottom_panel ::
+                    Method "hide_bottom_panel" cls sig => cls -> sig
+hide_bottom_panel = runMethod @"hide_bottom_panel"
+
+hide_virtual_keyboard ::
+                        Method "hide_virtual_keyboard" cls sig => cls -> sig
+hide_virtual_keyboard = runMethod @"hide_virtual_keyboard"
+
+hinge_joint_get_flag ::
+                       Method "hinge_joint_get_flag" cls sig => cls -> sig
+hinge_joint_get_flag = runMethod @"hinge_joint_get_flag"
+
+hinge_joint_get_param ::
+                        Method "hinge_joint_get_param" cls sig => cls -> sig
+hinge_joint_get_param = runMethod @"hinge_joint_get_param"
+
+hinge_joint_set_flag ::
+                       Method "hinge_joint_set_flag" cls sig => cls -> sig
+hinge_joint_set_flag = runMethod @"hinge_joint_set_flag"
+
+hinge_joint_set_param ::
+                        Method "hinge_joint_set_param" cls sig => cls -> sig
+hinge_joint_set_param = runMethod @"hinge_joint_set_param"
+
+idle :: Method "idle" cls sig => cls -> sig
+idle = runMethod @"idle"
+
+immediate_begin :: Method "immediate_begin" cls sig => cls -> sig
+immediate_begin = runMethod @"immediate_begin"
+
+immediate_clear :: Method "immediate_clear" cls sig => cls -> sig
+immediate_clear = runMethod @"immediate_clear"
+
+immediate_color :: Method "immediate_color" cls sig => cls -> sig
+immediate_color = runMethod @"immediate_color"
+
+immediate_create :: Method "immediate_create" cls sig => cls -> sig
+immediate_create = runMethod @"immediate_create"
+
+immediate_end :: Method "immediate_end" cls sig => cls -> sig
+immediate_end = runMethod @"immediate_end"
+
+immediate_get_material ::
+                         Method "immediate_get_material" cls sig => cls -> sig
+immediate_get_material = runMethod @"immediate_get_material"
+
+immediate_normal :: Method "immediate_normal" cls sig => cls -> sig
+immediate_normal = runMethod @"immediate_normal"
+
+immediate_set_material ::
+                         Method "immediate_set_material" cls sig => cls -> sig
+immediate_set_material = runMethod @"immediate_set_material"
+
+immediate_tangent ::
+                    Method "immediate_tangent" cls sig => cls -> sig
+immediate_tangent = runMethod @"immediate_tangent"
+
+immediate_uv :: Method "immediate_uv" cls sig => cls -> sig
+immediate_uv = runMethod @"immediate_uv"
+
+immediate_uv2 :: Method "immediate_uv2" cls sig => cls -> sig
+immediate_uv2 = runMethod @"immediate_uv2"
+
+immediate_vertex :: Method "immediate_vertex" cls sig => cls -> sig
+immediate_vertex = runMethod @"immediate_vertex"
+
+immediate_vertex_2d ::
+                      Method "immediate_vertex_2d" cls sig => cls -> sig
+immediate_vertex_2d = runMethod @"immediate_vertex_2d"
+
+import' :: Method "import" cls sig => cls -> sig
+import' = runMethod @"import"
+
+import_animation_from_other_importer ::
+                                       Method "import_animation_from_other_importer" cls sig =>
+                                       cls -> sig
+import_animation_from_other_importer
+  = runMethod @"import_animation_from_other_importer"
+
+import_scene_from_other_importer ::
+                                   Method "import_scene_from_other_importer" cls sig => cls -> sig
+import_scene_from_other_importer
+  = runMethod @"import_scene_from_other_importer"
+
+index :: Method "index" cls sig => cls -> sig
+index = runMethod @"index"
+
+init :: Method "init" cls sig => cls -> sig
+init = runMethod @"init"
+
+init_ref :: Method "init_ref" cls sig => cls -> sig
+init_ref = runMethod @"init_ref"
+
+initialize :: Method "initialize" cls sig => cls -> sig
+initialize = runMethod @"initialize"
+
+input :: Method "input" cls sig => cls -> sig
+input = runMethod @"input"
+
+input_event :: Method "input_event" cls sig => cls -> sig
+input_event = runMethod @"input_event"
+
+input_text :: Method "input_text" cls sig => cls -> sig
+input_text = runMethod @"input_text"
+
+insert_text_at_cursor ::
+                        Method "insert_text_at_cursor" cls sig => cls -> sig
+insert_text_at_cursor = runMethod @"insert_text_at_cursor"
+
+inspect_object :: Method "inspect_object" cls sig => cls -> sig
+inspect_object = runMethod @"inspect_object"
+
+instance' :: Method "instance" cls sig => cls -> sig
+instance' = runMethod @"instance"
+
+instance_attach_object_instance_id ::
+                                     Method "instance_attach_object_instance_id" cls sig =>
+                                     cls -> sig
+instance_attach_object_instance_id
+  = runMethod @"instance_attach_object_instance_id"
+
+instance_attach_skeleton ::
+                           Method "instance_attach_skeleton" cls sig => cls -> sig
+instance_attach_skeleton = runMethod @"instance_attach_skeleton"
+
+instance_create :: Method "instance_create" cls sig => cls -> sig
+instance_create = runMethod @"instance_create"
+
+instance_create2 :: Method "instance_create2" cls sig => cls -> sig
+instance_create2 = runMethod @"instance_create2"
+
+instance_geometry_set_as_instance_lod ::
+                                        Method "instance_geometry_set_as_instance_lod" cls sig =>
+                                        cls -> sig
+instance_geometry_set_as_instance_lod
+  = runMethod @"instance_geometry_set_as_instance_lod"
+
+instance_geometry_set_cast_shadows_setting ::
+                                             Method "instance_geometry_set_cast_shadows_setting" cls
+                                               sig =>
+                                             cls -> sig
+instance_geometry_set_cast_shadows_setting
+  = runMethod @"instance_geometry_set_cast_shadows_setting"
+
+instance_geometry_set_draw_range ::
+                                   Method "instance_geometry_set_draw_range" cls sig => cls -> sig
+instance_geometry_set_draw_range
+  = runMethod @"instance_geometry_set_draw_range"
+
+instance_geometry_set_flag ::
+                             Method "instance_geometry_set_flag" cls sig => cls -> sig
+instance_geometry_set_flag
+  = runMethod @"instance_geometry_set_flag"
+
+instance_geometry_set_material_override ::
+                                          Method "instance_geometry_set_material_override" cls
+                                            sig =>
+                                          cls -> sig
+instance_geometry_set_material_override
+  = runMethod @"instance_geometry_set_material_override"
+
+instance_has :: Method "instance_has" cls sig => cls -> sig
+instance_has = runMethod @"instance_has"
+
+instance_set_base ::
+                    Method "instance_set_base" cls sig => cls -> sig
+instance_set_base = runMethod @"instance_set_base"
+
+instance_set_blend_shape_weight ::
+                                  Method "instance_set_blend_shape_weight" cls sig => cls -> sig
+instance_set_blend_shape_weight
+  = runMethod @"instance_set_blend_shape_weight"
+
+instance_set_custom_aabb ::
+                           Method "instance_set_custom_aabb" cls sig => cls -> sig
+instance_set_custom_aabb = runMethod @"instance_set_custom_aabb"
+
+instance_set_exterior ::
+                        Method "instance_set_exterior" cls sig => cls -> sig
+instance_set_exterior = runMethod @"instance_set_exterior"
+
+instance_set_extra_visibility_margin ::
+                                       Method "instance_set_extra_visibility_margin" cls sig =>
+                                       cls -> sig
+instance_set_extra_visibility_margin
+  = runMethod @"instance_set_extra_visibility_margin"
+
+instance_set_layer_mask ::
+                          Method "instance_set_layer_mask" cls sig => cls -> sig
+instance_set_layer_mask = runMethod @"instance_set_layer_mask"
+
+instance_set_scenario ::
+                        Method "instance_set_scenario" cls sig => cls -> sig
+instance_set_scenario = runMethod @"instance_set_scenario"
+
+instance_set_surface_material ::
+                                Method "instance_set_surface_material" cls sig => cls -> sig
+instance_set_surface_material
+  = runMethod @"instance_set_surface_material"
+
+instance_set_transform ::
+                         Method "instance_set_transform" cls sig => cls -> sig
+instance_set_transform = runMethod @"instance_set_transform"
+
+instance_set_use_lightmap ::
+                            Method "instance_set_use_lightmap" cls sig => cls -> sig
+instance_set_use_lightmap = runMethod @"instance_set_use_lightmap"
+
+instance_set_visible ::
+                       Method "instance_set_visible" cls sig => cls -> sig
+instance_set_visible = runMethod @"instance_set_visible"
+
+instances_cull_aabb ::
+                      Method "instances_cull_aabb" cls sig => cls -> sig
+instances_cull_aabb = runMethod @"instances_cull_aabb"
+
+instances_cull_convex ::
+                        Method "instances_cull_convex" cls sig => cls -> sig
+instances_cull_convex = runMethod @"instances_cull_convex"
+
+instances_cull_ray ::
+                     Method "instances_cull_ray" cls sig => cls -> sig
+instances_cull_ray = runMethod @"instances_cull_ray"
+
+integrate_forces :: Method "integrate_forces" cls sig => cls -> sig
+integrate_forces = runMethod @"integrate_forces"
+
+interpolate :: Method "interpolate" cls sig => cls -> sig
+interpolate = runMethod @"interpolate"
+
+interpolate_baked ::
+                    Method "interpolate_baked" cls sig => cls -> sig
+interpolate_baked = runMethod @"interpolate_baked"
+
+interpolate_baked_up_vector ::
+                              Method "interpolate_baked_up_vector" cls sig => cls -> sig
+interpolate_baked_up_vector
+  = runMethod @"interpolate_baked_up_vector"
+
+interpolate_callback ::
+                       Method "interpolate_callback" cls sig => cls -> sig
+interpolate_callback = runMethod @"interpolate_callback"
+
+interpolate_deferred_callback ::
+                                Method "interpolate_deferred_callback" cls sig => cls -> sig
+interpolate_deferred_callback
+  = runMethod @"interpolate_deferred_callback"
+
+interpolate_method ::
+                     Method "interpolate_method" cls sig => cls -> sig
+interpolate_method = runMethod @"interpolate_method"
+
+interpolate_property ::
+                       Method "interpolate_property" cls sig => cls -> sig
+interpolate_property = runMethod @"interpolate_property"
+
+interpolatef :: Method "interpolatef" cls sig => cls -> sig
+interpolatef = runMethod @"interpolatef"
+
+intersect_point :: Method "intersect_point" cls sig => cls -> sig
+intersect_point = runMethod @"intersect_point"
+
+intersect_ray :: Method "intersect_ray" cls sig => cls -> sig
+intersect_ray = runMethod @"intersect_ray"
+
+intersect_shape :: Method "intersect_shape" cls sig => cls -> sig
+intersect_shape = runMethod @"intersect_shape"
+
+invalidate :: Method "invalidate" cls sig => cls -> sig
+invalidate = runMethod @"invalidate"
+
+is_3d_disabled :: Method "is_3d_disabled" cls sig => cls -> sig
+is_3d_disabled = runMethod @"is_3d_disabled"
+
+is_a_parent_of :: Method "is_a_parent_of" cls sig => cls -> sig
+is_a_parent_of = runMethod @"is_a_parent_of"
+
+is_able_to_sleep :: Method "is_able_to_sleep" cls sig => cls -> sig
+is_able_to_sleep = runMethod @"is_able_to_sleep"
+
+is_absorbent :: Method "is_absorbent" cls sig => cls -> sig
+is_absorbent = runMethod @"is_absorbent"
+
+is_action :: Method "is_action" cls sig => cls -> sig
+is_action = runMethod @"is_action"
+
+is_action_just_pressed ::
+                         Method "is_action_just_pressed" cls sig => cls -> sig
+is_action_just_pressed = runMethod @"is_action_just_pressed"
+
+is_action_just_released ::
+                          Method "is_action_just_released" cls sig => cls -> sig
+is_action_just_released = runMethod @"is_action_just_released"
+
+is_action_pressed ::
+                    Method "is_action_pressed" cls sig => cls -> sig
+is_action_pressed = runMethod @"is_action_pressed"
+
+is_action_released ::
+                     Method "is_action_released" cls sig => cls -> sig
+is_action_released = runMethod @"is_action_released"
+
+is_action_type :: Method "is_action_type" cls sig => cls -> sig
+is_action_type = runMethod @"is_action_type"
+
+is_active :: Method "is_active" cls sig => cls -> sig
+is_active = runMethod @"is_active"
+
+is_adjustment_enabled ::
+                        Method "is_adjustment_enabled" cls sig => cls -> sig
+is_adjustment_enabled = runMethod @"is_adjustment_enabled"
+
+is_always_ordered ::
+                    Method "is_always_ordered" cls sig => cls -> sig
+is_always_ordered = runMethod @"is_always_ordered"
+
+is_anti_aliased :: Method "is_anti_aliased" cls sig => cls -> sig
+is_anti_aliased = runMethod @"is_anti_aliased"
+
+is_anything_selected ::
+                       Method "is_anything_selected" cls sig => cls -> sig
+is_anything_selected = runMethod @"is_anything_selected"
+
+is_audio_listener ::
+                    Method "is_audio_listener" cls sig => cls -> sig
+is_audio_listener = runMethod @"is_audio_listener"
+
+is_audio_listener_2d ::
+                       Method "is_audio_listener_2d" cls sig => cls -> sig
+is_audio_listener_2d = runMethod @"is_audio_listener_2d"
+
+is_autoplay_enabled ::
+                      Method "is_autoplay_enabled" cls sig => cls -> sig
+is_autoplay_enabled = runMethod @"is_autoplay_enabled"
+
+is_big_endian_enabled ::
+                        Method "is_big_endian_enabled" cls sig => cls -> sig
+is_big_endian_enabled = runMethod @"is_big_endian_enabled"
+
+is_blend_splits_enabled ::
+                          Method "is_blend_splits_enabled" cls sig => cls -> sig
+is_blend_splits_enabled = runMethod @"is_blend_splits_enabled"
+
+is_blocking_handshake_enabled ::
+                                Method "is_blocking_handshake_enabled" cls sig => cls -> sig
+is_blocking_handshake_enabled
+  = runMethod @"is_blocking_handshake_enabled"
+
+is_blocking_mode_enabled ::
+                           Method "is_blocking_mode_enabled" cls sig => cls -> sig
+is_blocking_mode_enabled = runMethod @"is_blocking_mode_enabled"
+
+is_blocking_signals ::
+                      Method "is_blocking_signals" cls sig => cls -> sig
+is_blocking_signals = runMethod @"is_blocking_signals"
+
+is_bone_rest_disabled ::
+                        Method "is_bone_rest_disabled" cls sig => cls -> sig
+is_bone_rest_disabled = runMethod @"is_bone_rest_disabled"
+
+is_box_projection_enabled ::
+                            Method "is_box_projection_enabled" cls sig => cls -> sig
+is_box_projection_enabled = runMethod @"is_box_projection_enabled"
+
+is_breakpoint_gutter_enabled ::
+                               Method "is_breakpoint_gutter_enabled" cls sig => cls -> sig
+is_breakpoint_gutter_enabled
+  = runMethod @"is_breakpoint_gutter_enabled"
+
+is_bus_bypassing_effects ::
+                           Method "is_bus_bypassing_effects" cls sig => cls -> sig
+is_bus_bypassing_effects = runMethod @"is_bus_bypassing_effects"
+
+is_bus_effect_enabled ::
+                        Method "is_bus_effect_enabled" cls sig => cls -> sig
+is_bus_effect_enabled = runMethod @"is_bus_effect_enabled"
+
+is_bus_mute :: Method "is_bus_mute" cls sig => cls -> sig
+is_bus_mute = runMethod @"is_bus_mute"
+
+is_bus_solo :: Method "is_bus_solo" cls sig => cls -> sig
+is_bus_solo = runMethod @"is_bus_solo"
+
+is_button_disabled ::
+                     Method "is_button_disabled" cls sig => cls -> sig
+is_button_disabled = runMethod @"is_button_disabled"
+
+is_button_pressed ::
+                    Method "is_button_pressed" cls sig => cls -> sig
+is_button_pressed = runMethod @"is_button_pressed"
+
+is_cell_transposed ::
+                     Method "is_cell_transposed" cls sig => cls -> sig
+is_cell_transposed = runMethod @"is_cell_transposed"
+
+is_cell_x_flipped ::
+                    Method "is_cell_x_flipped" cls sig => cls -> sig
+is_cell_x_flipped = runMethod @"is_cell_x_flipped"
+
+is_cell_y_flipped ::
+                    Method "is_cell_y_flipped" cls sig => cls -> sig
+is_cell_y_flipped = runMethod @"is_cell_y_flipped"
+
+is_centered :: Method "is_centered" cls sig => cls -> sig
+is_centered = runMethod @"is_centered"
+
+is_checkable :: Method "is_checkable" cls sig => cls -> sig
+is_checkable = runMethod @"is_checkable"
+
+is_checked :: Method "is_checked" cls sig => cls -> sig
+is_checked = runMethod @"is_checked"
+
+is_class :: Method "is_class" cls sig => cls -> sig
+is_class = runMethod @"is_class"
+
+is_class_enabled :: Method "is_class_enabled" cls sig => cls -> sig
+is_class_enabled = runMethod @"is_class_enabled"
+
+is_clear_button_enabled ::
+                          Method "is_clear_button_enabled" cls sig => cls -> sig
+is_clear_button_enabled = runMethod @"is_clear_button_enabled"
+
+is_clip_to_areas_enabled ::
+                           Method "is_clip_to_areas_enabled" cls sig => cls -> sig
+is_clip_to_areas_enabled = runMethod @"is_clip_to_areas_enabled"
+
+is_clip_to_bodies_enabled ::
+                            Method "is_clip_to_bodies_enabled" cls sig => cls -> sig
+is_clip_to_bodies_enabled = runMethod @"is_clip_to_bodies_enabled"
+
+is_clipping_contents ::
+                       Method "is_clipping_contents" cls sig => cls -> sig
+is_clipping_contents = runMethod @"is_clipping_contents"
+
+is_clipping_text :: Method "is_clipping_text" cls sig => cls -> sig
+is_clipping_text = runMethod @"is_clipping_text"
+
+is_close_button_visible ::
+                          Method "is_close_button_visible" cls sig => cls -> sig
+is_close_button_visible = runMethod @"is_close_button_visible"
+
+is_closed :: Method "is_closed" cls sig => cls -> sig
+is_closed = runMethod @"is_closed"
+
+is_collapsed :: Method "is_collapsed" cls sig => cls -> sig
+is_collapsed = runMethod @"is_collapsed"
+
+is_collide_with_areas_enabled ::
+                                Method "is_collide_with_areas_enabled" cls sig => cls -> sig
+is_collide_with_areas_enabled
+  = runMethod @"is_collide_with_areas_enabled"
+
+is_collide_with_bodies_enabled ::
+                                 Method "is_collide_with_bodies_enabled" cls sig => cls -> sig
+is_collide_with_bodies_enabled
+  = runMethod @"is_collide_with_bodies_enabled"
+
+is_colliding :: Method "is_colliding" cls sig => cls -> sig
+is_colliding = runMethod @"is_colliding"
+
+is_comment :: Method "is_comment" cls sig => cls -> sig
+is_comment = runMethod @"is_comment"
+
+is_compressed :: Method "is_compressed" cls sig => cls -> sig
+is_compressed = runMethod @"is_compressed"
+
+is_cone :: Method "is_cone" cls sig => cls -> sig
+is_cone = runMethod @"is_cone"
+
+is_connected :: Method "is_connected" cls sig => cls -> sig
+is_connected = runMethod @"is_connected"
+
+is_connected_to_host ::
+                       Method "is_connected_to_host" cls sig => cls -> sig
+is_connected_to_host = runMethod @"is_connected_to_host"
+
+is_connection_available ::
+                          Method "is_connection_available" cls sig => cls -> sig
+is_connection_available = runMethod @"is_connection_available"
+
+is_contact_monitor_enabled ::
+                             Method "is_contact_monitor_enabled" cls sig => cls -> sig
+is_contact_monitor_enabled
+  = runMethod @"is_contact_monitor_enabled"
+
+is_context_menu_enabled ::
+                          Method "is_context_menu_enabled" cls sig => cls -> sig
+is_context_menu_enabled = runMethod @"is_context_menu_enabled"
+
+is_current :: Method "is_current" cls sig => cls -> sig
+is_current = runMethod @"is_current"
+
+is_custom_set_as_button ::
+                          Method "is_custom_set_as_button" cls sig => cls -> sig
+is_custom_set_as_button = runMethod @"is_custom_set_as_button"
+
+is_debug_build :: Method "is_debug_build" cls sig => cls -> sig
+is_debug_build = runMethod @"is_debug_build"
+
+is_debugging_collisions_hint ::
+                               Method "is_debugging_collisions_hint" cls sig => cls -> sig
+is_debugging_collisions_hint
+  = runMethod @"is_debugging_collisions_hint"
+
+is_debugging_navigation_hint ::
+                               Method "is_debugging_navigation_hint" cls sig => cls -> sig
+is_debugging_navigation_hint
+  = runMethod @"is_debugging_navigation_hint"
+
+is_deferred_mode :: Method "is_deferred_mode" cls sig => cls -> sig
+is_deferred_mode = runMethod @"is_deferred_mode"
+
+is_depth_deep_parallax_enabled ::
+                                 Method "is_depth_deep_parallax_enabled" cls sig => cls -> sig
+is_depth_deep_parallax_enabled
+  = runMethod @"is_depth_deep_parallax_enabled"
+
+is_disabled :: Method "is_disabled" cls sig => cls -> sig
+is_disabled = runMethod @"is_disabled"
+
+is_discover_ipv6 :: Method "is_discover_ipv6" cls sig => cls -> sig
+is_discover_ipv6 = runMethod @"is_discover_ipv6"
+
+is_displayed_folded ::
+                      Method "is_displayed_folded" cls sig => cls -> sig
+is_displayed_folded = runMethod @"is_displayed_folded"
+
+is_distance_field_hint ::
+                         Method "is_distance_field_hint" cls sig => cls -> sig
+is_distance_field_hint = runMethod @"is_distance_field_hint"
+
+is_dof_blur_far_enabled ::
+                          Method "is_dof_blur_far_enabled" cls sig => cls -> sig
+is_dof_blur_far_enabled = runMethod @"is_dof_blur_far_enabled"
+
+is_dof_blur_near_enabled ::
+                           Method "is_dof_blur_near_enabled" cls sig => cls -> sig
+is_dof_blur_near_enabled = runMethod @"is_dof_blur_near_enabled"
+
+is_doubleclick :: Method "is_doubleclick" cls sig => cls -> sig
+is_doubleclick = runMethod @"is_doubleclick"
+
+is_draw_behind_parent_enabled ::
+                                Method "is_draw_behind_parent_enabled" cls sig => cls -> sig
+is_draw_behind_parent_enabled
+  = runMethod @"is_draw_behind_parent_enabled"
+
+is_draw_center_enabled ::
+                         Method "is_draw_center_enabled" cls sig => cls -> sig
+is_draw_center_enabled = runMethod @"is_draw_center_enabled"
+
+is_draw_red :: Method "is_draw_red" cls sig => cls -> sig
+is_draw_red = runMethod @"is_draw_red"
+
+is_echo :: Method "is_echo" cls sig => cls -> sig
+is_echo = runMethod @"is_echo"
+
+is_editable :: Method "is_editable" cls sig => cls -> sig
+is_editable = runMethod @"is_editable"
+
+is_editing_alpha :: Method "is_editing_alpha" cls sig => cls -> sig
+is_editing_alpha = runMethod @"is_editing_alpha"
+
+is_editor_hint :: Method "is_editor_hint" cls sig => cls -> sig
+is_editor_hint = runMethod @"is_editor_hint"
+
+is_editor_only :: Method "is_editor_only" cls sig => cls -> sig
+is_editor_only = runMethod @"is_editor_only"
+
+is_emission_angle_enabled ::
+                            Method "is_emission_angle_enabled" cls sig => cls -> sig
+is_emission_angle_enabled = runMethod @"is_emission_angle_enabled"
+
+is_emitting :: Method "is_emitting" cls sig => cls -> sig
+is_emitting = runMethod @"is_emitting"
+
+is_empty :: Method "is_empty" cls sig => cls -> sig
+is_empty = runMethod @"is_empty"
+
+is_enabled :: Method "is_enabled" cls sig => cls -> sig
+is_enabled = runMethod @"is_enabled"
+
+is_enabler_enabled ::
+                     Method "is_enabler_enabled" cls sig => cls -> sig
+is_enabler_enabled = runMethod @"is_enabler_enabled"
+
+is_exclusive :: Method "is_exclusive" cls sig => cls -> sig
+is_exclusive = runMethod @"is_exclusive"
+
+is_feedback_active ::
+                     Method "is_feedback_active" cls sig => cls -> sig
+is_feedback_active = runMethod @"is_feedback_active"
+
+is_filter_enabled ::
+                    Method "is_filter_enabled" cls sig => cls -> sig
+is_filter_enabled = runMethod @"is_filter_enabled"
+
+is_flat :: Method "is_flat" cls sig => cls -> sig
+is_flat = runMethod @"is_flat"
+
+is_flipped_h :: Method "is_flipped_h" cls sig => cls -> sig
+is_flipped_h = runMethod @"is_flipped_h"
+
+is_flipped_v :: Method "is_flipped_v" cls sig => cls -> sig
+is_flipped_v = runMethod @"is_flipped_v"
+
+is_fog_depth_enabled ::
+                       Method "is_fog_depth_enabled" cls sig => cls -> sig
+is_fog_depth_enabled = runMethod @"is_fog_depth_enabled"
+
+is_fog_enabled :: Method "is_fog_enabled" cls sig => cls -> sig
+is_fog_enabled = runMethod @"is_fog_enabled"
+
+is_fog_height_enabled ::
+                        Method "is_fog_height_enabled" cls sig => cls -> sig
+is_fog_height_enabled = runMethod @"is_fog_height_enabled"
+
+is_fog_transmit_enabled ::
+                          Method "is_fog_transmit_enabled" cls sig => cls -> sig
+is_fog_transmit_enabled = runMethod @"is_fog_transmit_enabled"
+
+is_folded :: Method "is_folded" cls sig => cls -> sig
+is_folded = runMethod @"is_folded"
+
+is_folding_disabled ::
+                      Method "is_folding_disabled" cls sig => cls -> sig
+is_folding_disabled = runMethod @"is_folding_disabled"
+
+is_folding_hidden ::
+                    Method "is_folding_hidden" cls sig => cls -> sig
+is_folding_hidden = runMethod @"is_folding_hidden"
+
+is_follow_smoothing_enabled ::
+                              Method "is_follow_smoothing_enabled" cls sig => cls -> sig
+is_follow_smoothing_enabled
+  = runMethod @"is_follow_smoothing_enabled"
+
+is_glow_bicubic_upscale_enabled ::
+                                  Method "is_glow_bicubic_upscale_enabled" cls sig => cls -> sig
+is_glow_bicubic_upscale_enabled
+  = runMethod @"is_glow_bicubic_upscale_enabled"
+
+is_glow_enabled :: Method "is_glow_enabled" cls sig => cls -> sig
+is_glow_enabled = runMethod @"is_glow_enabled"
+
+is_glow_level_enabled ::
+                        Method "is_glow_level_enabled" cls sig => cls -> sig
+is_glow_level_enabled = runMethod @"is_glow_level_enabled"
+
+is_gravity_a_point ::
+                     Method "is_gravity_a_point" cls sig => cls -> sig
+is_gravity_a_point = runMethod @"is_gravity_a_point"
+
+is_greater_allowed ::
+                     Method "is_greater_allowed" cls sig => cls -> sig
+is_greater_allowed = runMethod @"is_greater_allowed"
+
+is_greater_than :: Method "is_greater_than" cls sig => cls -> sig
+is_greater_than = runMethod @"is_greater_than"
+
+is_grow_enabled :: Method "is_grow_enabled" cls sig => cls -> sig
+is_grow_enabled = runMethod @"is_grow_enabled"
+
+is_h_drag_enabled ::
+                    Method "is_h_drag_enabled" cls sig => cls -> sig
+is_h_drag_enabled = runMethod @"is_h_drag_enabled"
+
+is_h_scroll_enabled ::
+                      Method "is_h_scroll_enabled" cls sig => cls -> sig
+is_h_scroll_enabled = runMethod @"is_h_scroll_enabled"
+
+is_hdr :: Method "is_hdr" cls sig => cls -> sig
+is_hdr = runMethod @"is_hdr"
+
+is_hide_on_checkable_item_selection ::
+                                      Method "is_hide_on_checkable_item_selection" cls sig =>
+                                      cls -> sig
+is_hide_on_checkable_item_selection
+  = runMethod @"is_hide_on_checkable_item_selection"
+
+is_hide_on_item_selection ::
+                            Method "is_hide_on_item_selection" cls sig => cls -> sig
+is_hide_on_item_selection = runMethod @"is_hide_on_item_selection"
+
+is_hide_on_state_item_selection ::
+                                  Method "is_hide_on_state_item_selection" cls sig => cls -> sig
+is_hide_on_state_item_selection
+  = runMethod @"is_hide_on_state_item_selection"
+
+is_hide_on_window_lose_focus ::
+                               Method "is_hide_on_window_lose_focus" cls sig => cls -> sig
+is_hide_on_window_lose_focus
+  = runMethod @"is_hide_on_window_lose_focus"
+
+is_hiding_enabled ::
+                    Method "is_hiding_enabled" cls sig => cls -> sig
+is_hiding_enabled = runMethod @"is_hiding_enabled"
+
+is_highlight_all_occurrences_enabled ::
+                                       Method "is_highlight_all_occurrences_enabled" cls sig =>
+                                       cls -> sig
+is_highlight_all_occurrences_enabled
+  = runMethod @"is_highlight_all_occurrences_enabled"
+
+is_highlight_current_line_enabled ::
+                                    Method "is_highlight_current_line_enabled" cls sig => cls -> sig
+is_highlight_current_line_enabled
+  = runMethod @"is_highlight_current_line_enabled"
+
+is_hovered :: Method "is_hovered" cls sig => cls -> sig
+is_hovered = runMethod @"is_hovered"
+
+is_ignore_camera_zoom ::
+                        Method "is_ignore_camera_zoom" cls sig => cls -> sig
+is_ignore_camera_zoom = runMethod @"is_ignore_camera_zoom"
+
+is_in_contact :: Method "is_in_contact" cls sig => cls -> sig
+is_in_contact = runMethod @"is_in_contact"
+
+is_in_group :: Method "is_in_group" cls sig => cls -> sig
+is_in_group = runMethod @"is_in_group"
+
+is_in_low_processor_usage_mode ::
+                                 Method "is_in_low_processor_usage_mode" cls sig => cls -> sig
+is_in_low_processor_usage_mode
+  = runMethod @"is_in_low_processor_usage_mode"
+
+is_in_physics_frame ::
+                      Method "is_in_physics_frame" cls sig => cls -> sig
+is_in_physics_frame = runMethod @"is_in_physics_frame"
+
+is_initialized :: Method "is_initialized" cls sig => cls -> sig
+is_initialized = runMethod @"is_initialized"
+
+is_input_disabled ::
+                    Method "is_input_disabled" cls sig => cls -> sig
+is_input_disabled = runMethod @"is_input_disabled"
+
+is_input_handled :: Method "is_input_handled" cls sig => cls -> sig
+is_input_handled = runMethod @"is_input_handled"
+
+is_input_set_as_auto_advance ::
+                               Method "is_input_set_as_auto_advance" cls sig => cls -> sig
+is_input_set_as_auto_advance
+  = runMethod @"is_input_set_as_auto_advance"
+
+is_inside_tree :: Method "is_inside_tree" cls sig => cls -> sig
+is_inside_tree = runMethod @"is_inside_tree"
+
+is_interior :: Method "is_interior" cls sig => cls -> sig
+is_interior = runMethod @"is_interior"
+
+is_interpolation_enabled ::
+                           Method "is_interpolation_enabled" cls sig => cls -> sig
+is_interpolation_enabled = runMethod @"is_interpolation_enabled"
+
+is_inverting_faces ::
+                     Method "is_inverting_faces" cls sig => cls -> sig
+is_inverting_faces = runMethod @"is_inverting_faces"
+
+is_invisible :: Method "is_invisible" cls sig => cls -> sig
+is_invisible = runMethod @"is_invisible"
+
+is_item_checkable ::
+                    Method "is_item_checkable" cls sig => cls -> sig
+is_item_checkable = runMethod @"is_item_checkable"
+
+is_item_checked :: Method "is_item_checked" cls sig => cls -> sig
+is_item_checked = runMethod @"is_item_checked"
+
+is_item_disabled :: Method "is_item_disabled" cls sig => cls -> sig
+is_item_disabled = runMethod @"is_item_disabled"
+
+is_item_radio_checkable ::
+                          Method "is_item_radio_checkable" cls sig => cls -> sig
+is_item_radio_checkable = runMethod @"is_item_radio_checkable"
+
+is_item_selectable ::
+                     Method "is_item_selectable" cls sig => cls -> sig
+is_item_selectable = runMethod @"is_item_selectable"
+
+is_item_separator ::
+                    Method "is_item_separator" cls sig => cls -> sig
+is_item_separator = runMethod @"is_item_separator"
+
+is_item_shortcut_disabled ::
+                            Method "is_item_shortcut_disabled" cls sig => cls -> sig
+is_item_shortcut_disabled = runMethod @"is_item_shortcut_disabled"
+
+is_item_tooltip_enabled ::
+                          Method "is_item_tooltip_enabled" cls sig => cls -> sig
+is_item_tooltip_enabled = runMethod @"is_item_tooltip_enabled"
+
+is_joy_button_pressed ::
+                        Method "is_joy_button_pressed" cls sig => cls -> sig
+is_joy_button_pressed = runMethod @"is_joy_button_pressed"
+
+is_joy_known :: Method "is_joy_known" cls sig => cls -> sig
+is_joy_known = runMethod @"is_joy_known"
+
+is_keep_screen_on ::
+                    Method "is_keep_screen_on" cls sig => cls -> sig
+is_keep_screen_on = runMethod @"is_keep_screen_on"
+
+is_key_pressed :: Method "is_key_pressed" cls sig => cls -> sig
+is_key_pressed = runMethod @"is_key_pressed"
+
+is_keying :: Method "is_keying" cls sig => cls -> sig
+is_keying = runMethod @"is_keying"
+
+is_lesser_allowed ::
+                    Method "is_lesser_allowed" cls sig => cls -> sig
+is_lesser_allowed = runMethod @"is_lesser_allowed"
+
+is_limit_drawing_enabled ::
+                           Method "is_limit_drawing_enabled" cls sig => cls -> sig
+is_limit_drawing_enabled = runMethod @"is_limit_drawing_enabled"
+
+is_limit_smoothing_enabled ::
+                             Method "is_limit_smoothing_enabled" cls sig => cls -> sig
+is_limit_smoothing_enabled
+  = runMethod @"is_limit_smoothing_enabled"
+
+is_line_hidden :: Method "is_line_hidden" cls sig => cls -> sig
+is_line_hidden = runMethod @"is_line_hidden"
+
+is_listening :: Method "is_listening" cls sig => cls -> sig
+is_listening = runMethod @"is_listening"
+
+is_local_to_scene ::
+                    Method "is_local_to_scene" cls sig => cls -> sig
+is_local_to_scene = runMethod @"is_local_to_scene"
+
+is_local_transform_notification_enabled ::
+                                          Method "is_local_transform_notification_enabled" cls
+                                            sig =>
+                                          cls -> sig
+is_local_transform_notification_enabled
+  = runMethod @"is_local_transform_notification_enabled"
+
+is_margin_drawing_enabled ::
+                            Method "is_margin_drawing_enabled" cls sig => cls -> sig
+is_margin_drawing_enabled = runMethod @"is_margin_drawing_enabled"
+
+is_meta_underlined ::
+                     Method "is_meta_underlined" cls sig => cls -> sig
+is_meta_underlined = runMethod @"is_meta_underlined"
+
+is_mode_overriding_title ::
+                           Method "is_mode_overriding_title" cls sig => cls -> sig
+is_mode_overriding_title = runMethod @"is_mode_overriding_title"
+
+is_monitorable :: Method "is_monitorable" cls sig => cls -> sig
+is_monitorable = runMethod @"is_monitorable"
+
+is_monitoring :: Method "is_monitoring" cls sig => cls -> sig
+is_monitoring = runMethod @"is_monitoring"
+
+is_mouse_button_pressed ::
+                          Method "is_mouse_button_pressed" cls sig => cls -> sig
+is_mouse_button_pressed = runMethod @"is_mouse_button_pressed"
+
+is_multiplayer_poll_enabled ::
+                              Method "is_multiplayer_poll_enabled" cls sig => cls -> sig
+is_multiplayer_poll_enabled
+  = runMethod @"is_multiplayer_poll_enabled"
+
+is_negative :: Method "is_negative" cls sig => cls -> sig
+is_negative = runMethod @"is_negative"
+
+is_network_master ::
+                    Method "is_network_master" cls sig => cls -> sig
+is_network_master = runMethod @"is_network_master"
+
+is_network_server ::
+                    Method "is_network_server" cls sig => cls -> sig
+is_network_server = runMethod @"is_network_server"
+
+is_node_connected ::
+                    Method "is_node_connected" cls sig => cls -> sig
+is_node_connected = runMethod @"is_node_connected"
+
+is_node_connection ::
+                     Method "is_node_connection" cls sig => cls -> sig
+is_node_connection = runMethod @"is_node_connection"
+
+is_node_instance_placeholder ::
+                               Method "is_node_instance_placeholder" cls sig => cls -> sig
+is_node_instance_placeholder
+  = runMethod @"is_node_instance_placeholder"
+
+is_normalmap :: Method "is_normalmap" cls sig => cls -> sig
+is_normalmap = runMethod @"is_normalmap"
+
+is_object_decoding_allowed ::
+                             Method "is_object_decoding_allowed" cls sig => cls -> sig
+is_object_decoding_allowed
+  = runMethod @"is_object_decoding_allowed"
+
+is_ok_left_and_cancel_right ::
+                              Method "is_ok_left_and_cancel_right" cls sig => cls -> sig
+is_ok_left_and_cancel_right
+  = runMethod @"is_ok_left_and_cancel_right"
+
+is_on_ceiling :: Method "is_on_ceiling" cls sig => cls -> sig
+is_on_ceiling = runMethod @"is_on_ceiling"
+
+is_on_floor :: Method "is_on_floor" cls sig => cls -> sig
+is_on_floor = runMethod @"is_on_floor"
+
+is_on_screen :: Method "is_on_screen" cls sig => cls -> sig
+is_on_screen = runMethod @"is_on_screen"
+
+is_on_wall :: Method "is_on_wall" cls sig => cls -> sig
+is_on_wall = runMethod @"is_on_wall"
+
+is_one_shot :: Method "is_one_shot" cls sig => cls -> sig
+is_one_shot = runMethod @"is_one_shot"
+
+is_one_way_collision_enabled ::
+                               Method "is_one_way_collision_enabled" cls sig => cls -> sig
+is_one_way_collision_enabled
+  = runMethod @"is_one_way_collision_enabled"
+
+is_open :: Method "is_open" cls sig => cls -> sig
+is_open = runMethod @"is_open"
+
+is_overriding_audio_bus ::
+                          Method "is_overriding_audio_bus" cls sig => cls -> sig
+is_overriding_audio_bus = runMethod @"is_overriding_audio_bus"
+
+is_overriding_selected_font_color ::
+                                    Method "is_overriding_selected_font_color" cls sig => cls -> sig
+is_overriding_selected_font_color
+  = runMethod @"is_overriding_selected_font_color"
+
+is_overwrite_warning_disabled ::
+                                Method "is_overwrite_warning_disabled" cls sig => cls -> sig
+is_overwrite_warning_disabled
+  = runMethod @"is_overwrite_warning_disabled"
+
+is_parent_class :: Method "is_parent_class" cls sig => cls -> sig
+is_parent_class = runMethod @"is_parent_class"
+
+is_passby_press_enabled ::
+                          Method "is_passby_press_enabled" cls sig => cls -> sig
+is_passby_press_enabled = runMethod @"is_passby_press_enabled"
+
+is_path_continuous_u ::
+                       Method "is_path_continuous_u" cls sig => cls -> sig
+is_path_continuous_u = runMethod @"is_path_continuous_u"
+
+is_path_filtered :: Method "is_path_filtered" cls sig => cls -> sig
+is_path_filtered = runMethod @"is_path_filtered"
+
+is_path_joined :: Method "is_path_joined" cls sig => cls -> sig
+is_path_joined = runMethod @"is_path_joined"
+
+is_path_local :: Method "is_path_local" cls sig => cls -> sig
+is_path_local = runMethod @"is_path_local"
+
+is_paused :: Method "is_paused" cls sig => cls -> sig
+is_paused = runMethod @"is_paused"
+
+is_percent_visible ::
+                     Method "is_percent_visible" cls sig => cls -> sig
+is_percent_visible = runMethod @"is_percent_visible"
+
+is_physics_processing ::
+                        Method "is_physics_processing" cls sig => cls -> sig
+is_physics_processing = runMethod @"is_physics_processing"
+
+is_physics_processing_internal ::
+                                 Method "is_physics_processing_internal" cls sig => cls -> sig
+is_physics_processing_internal
+  = runMethod @"is_physics_processing_internal"
+
+is_pickable :: Method "is_pickable" cls sig => cls -> sig
+is_pickable = runMethod @"is_pickable"
+
+is_pixel_opaque :: Method "is_pixel_opaque" cls sig => cls -> sig
+is_pixel_opaque = runMethod @"is_pixel_opaque"
+
+is_playing :: Method "is_playing" cls sig => cls -> sig
+is_playing = runMethod @"is_playing"
+
+is_plugin_enabled ::
+                    Method "is_plugin_enabled" cls sig => cls -> sig
+is_plugin_enabled = runMethod @"is_plugin_enabled"
+
+is_point_inside :: Method "is_point_inside" cls sig => cls -> sig
+is_point_inside = runMethod @"is_point_inside"
+
+is_position_behind ::
+                     Method "is_position_behind" cls sig => cls -> sig
+is_position_behind = runMethod @"is_position_behind"
+
+is_pressed :: Method "is_pressed" cls sig => cls -> sig
+is_pressed = runMethod @"is_pressed"
+
+is_primary :: Method "is_primary" cls sig => cls -> sig
+is_primary = runMethod @"is_primary"
+
+is_processing :: Method "is_processing" cls sig => cls -> sig
+is_processing = runMethod @"is_processing"
+
+is_processing_input ::
+                      Method "is_processing_input" cls sig => cls -> sig
+is_processing_input = runMethod @"is_processing_input"
+
+is_processing_internal ::
+                         Method "is_processing_internal" cls sig => cls -> sig
+is_processing_internal = runMethod @"is_processing_internal"
+
+is_processing_unhandled_input ::
+                                Method "is_processing_unhandled_input" cls sig => cls -> sig
+is_processing_unhandled_input
+  = runMethod @"is_processing_unhandled_input"
+
+is_processing_unhandled_key_input ::
+                                    Method "is_processing_unhandled_key_input" cls sig => cls -> sig
+is_processing_unhandled_key_input
+  = runMethod @"is_processing_unhandled_key_input"
+
+is_proximity_fade_enabled ::
+                            Method "is_proximity_fade_enabled" cls sig => cls -> sig
+is_proximity_fade_enabled = runMethod @"is_proximity_fade_enabled"
+
+is_queued_for_deletion ::
+                         Method "is_queued_for_deletion" cls sig => cls -> sig
+is_queued_for_deletion = runMethod @"is_queued_for_deletion"
+
+is_ratio_exp :: Method "is_ratio_exp" cls sig => cls -> sig
+is_ratio_exp = runMethod @"is_ratio_exp"
+
+is_raw_mode :: Method "is_raw_mode" cls sig => cls -> sig
+is_raw_mode = runMethod @"is_raw_mode"
+
+is_ray_pickable :: Method "is_ray_pickable" cls sig => cls -> sig
+is_ray_pickable = runMethod @"is_ray_pickable"
+
+is_read_only :: Method "is_read_only" cls sig => cls -> sig
+is_read_only = runMethod @"is_read_only"
+
+is_readonly :: Method "is_readonly" cls sig => cls -> sig
+is_readonly = runMethod @"is_readonly"
+
+is_recording_active ::
+                      Method "is_recording_active" cls sig => cls -> sig
+is_recording_active = runMethod @"is_recording_active"
+
+is_refusing_new_connections ::
+                              Method "is_refusing_new_connections" cls sig => cls -> sig
+is_refusing_new_connections
+  = runMethod @"is_refusing_new_connections"
+
+is_refusing_new_network_connections ::
+                                      Method "is_refusing_new_network_connections" cls sig =>
+                                      cls -> sig
+is_refusing_new_network_connections
+  = runMethod @"is_refusing_new_network_connections"
+
+is_region :: Method "is_region" cls sig => cls -> sig
+is_region = runMethod @"is_region"
+
+is_region_filter_clip_enabled ::
+                                Method "is_region_filter_clip_enabled" cls sig => cls -> sig
+is_region_filter_clip_enabled
+  = runMethod @"is_region_filter_clip_enabled"
+
+is_reloadable :: Method "is_reloadable" cls sig => cls -> sig
+is_reloadable = runMethod @"is_reloadable"
+
+is_repeat :: Method "is_repeat" cls sig => cls -> sig
+is_repeat = runMethod @"is_repeat"
+
+is_resizable :: Method "is_resizable" cls sig => cls -> sig
+is_resizable = runMethod @"is_resizable"
+
+is_response_chunked ::
+                      Method "is_response_chunked" cls sig => cls -> sig
+is_response_chunked = runMethod @"is_response_chunked"
+
+is_return_value_enabled ::
+                          Method "is_return_value_enabled" cls sig => cls -> sig
+is_return_value_enabled = runMethod @"is_return_value_enabled"
+
+is_right_click_moving_caret ::
+                              Method "is_right_click_moving_caret" cls sig => cls -> sig
+is_right_click_moving_caret
+  = runMethod @"is_right_click_moving_caret"
+
+is_right_disconnects_enabled ::
+                               Method "is_right_disconnects_enabled" cls sig => cls -> sig
+is_right_disconnects_enabled
+  = runMethod @"is_right_disconnects_enabled"
+
+is_root_hidden :: Method "is_root_hidden" cls sig => cls -> sig
+is_root_hidden = runMethod @"is_root_hidden"
+
+is_root_shape :: Method "is_root_shape" cls sig => cls -> sig
+is_root_shape = runMethod @"is_root_shape"
+
+is_rotating :: Method "is_rotating" cls sig => cls -> sig
+is_rotating = runMethod @"is_rotating"
+
+is_rough :: Method "is_rough" cls sig => cls -> sig
+is_rough = runMethod @"is_rough"
+
+is_running :: Method "is_running" cls sig => cls -> sig
+is_running = runMethod @"is_running"
+
+is_same_column_width ::
+                       Method "is_same_column_width" cls sig => cls -> sig
+is_same_column_width = runMethod @"is_same_column_width"
+
+is_scale_disabled ::
+                    Method "is_scale_disabled" cls sig => cls -> sig
+is_scale_disabled = runMethod @"is_scale_disabled"
+
+is_scancode_unicode ::
+                      Method "is_scancode_unicode" cls sig => cls -> sig
+is_scancode_unicode = runMethod @"is_scancode_unicode"
+
+is_scanning :: Method "is_scanning" cls sig => cls -> sig
+is_scanning = runMethod @"is_scanning"
+
+is_screen_drawing_enabled ::
+                            Method "is_screen_drawing_enabled" cls sig => cls -> sig
+is_screen_drawing_enabled = runMethod @"is_screen_drawing_enabled"
+
+is_scroll_active :: Method "is_scroll_active" cls sig => cls -> sig
+is_scroll_active = runMethod @"is_scroll_active"
+
+is_scroll_following ::
+                      Method "is_scroll_following" cls sig => cls -> sig
+is_scroll_following = runMethod @"is_scroll_following"
+
+is_scrollable :: Method "is_scrollable" cls sig => cls -> sig
+is_scrollable = runMethod @"is_scrollable"
+
+is_secret :: Method "is_secret" cls sig => cls -> sig
+is_secret = runMethod @"is_secret"
+
+is_selectable :: Method "is_selectable" cls sig => cls -> sig
+is_selectable = runMethod @"is_selectable"
+
+is_selected :: Method "is_selected" cls sig => cls -> sig
+is_selected = runMethod @"is_selected"
+
+is_selection_active ::
+                      Method "is_selection_active" cls sig => cls -> sig
+is_selection_active = runMethod @"is_selection_active"
+
+is_selection_enabled ::
+                       Method "is_selection_enabled" cls sig => cls -> sig
+is_selection_enabled = runMethod @"is_selection_enabled"
+
+is_set_as_interior ::
+                     Method "is_set_as_interior" cls sig => cls -> sig
+is_set_as_interior = runMethod @"is_set_as_interior"
+
+is_set_as_toplevel ::
+                     Method "is_set_as_toplevel" cls sig => cls -> sig
+is_set_as_toplevel = runMethod @"is_set_as_toplevel"
+
+is_shadow_enabled ::
+                    Method "is_shadow_enabled" cls sig => cls -> sig
+is_shadow_enabled = runMethod @"is_shadow_enabled"
+
+is_shape_centered ::
+                    Method "is_shape_centered" cls sig => cls -> sig
+is_shape_centered = runMethod @"is_shape_centered"
+
+is_shape_owner_disabled ::
+                          Method "is_shape_owner_disabled" cls sig => cls -> sig
+is_shape_owner_disabled = runMethod @"is_shape_owner_disabled"
+
+is_shape_owner_one_way_collision_enabled ::
+                                           Method "is_shape_owner_one_way_collision_enabled" cls
+                                             sig =>
+                                           cls -> sig
+is_shape_owner_one_way_collision_enabled
+  = runMethod @"is_shape_owner_one_way_collision_enabled"
+
+is_shape_visible :: Method "is_shape_visible" cls sig => cls -> sig
+is_shape_visible = runMethod @"is_shape_visible"
+
+is_shortcut :: Method "is_shortcut" cls sig => cls -> sig
+is_shortcut = runMethod @"is_shortcut"
+
+is_show_line_numbers_enabled ::
+                               Method "is_show_line_numbers_enabled" cls sig => cls -> sig
+is_show_line_numbers_enabled
+  = runMethod @"is_show_line_numbers_enabled"
+
+is_showing_hidden_files ::
+                          Method "is_showing_hidden_files" cls sig => cls -> sig
+is_showing_hidden_files = runMethod @"is_showing_hidden_files"
+
+is_simulating_physics ::
+                        Method "is_simulating_physics" cls sig => cls -> sig
+is_simulating_physics = runMethod @"is_simulating_physics"
+
+is_singleton :: Method "is_singleton" cls sig => cls -> sig
+is_singleton = runMethod @"is_singleton"
+
+is_size_override_enabled ::
+                           Method "is_size_override_enabled" cls sig => cls -> sig
+is_size_override_enabled = runMethod @"is_size_override_enabled"
+
+is_size_override_stretch_enabled ::
+                                   Method "is_size_override_stretch_enabled" cls sig => cls -> sig
+is_size_override_stretch_enabled
+  = runMethod @"is_size_override_stretch_enabled"
+
+is_sleeping :: Method "is_sleeping" cls sig => cls -> sig
+is_sleeping = runMethod @"is_sleeping"
+
+is_slot_enabled_left ::
+                       Method "is_slot_enabled_left" cls sig => cls -> sig
+is_slot_enabled_left = runMethod @"is_slot_enabled_left"
+
+is_slot_enabled_right ::
+                        Method "is_slot_enabled_right" cls sig => cls -> sig
+is_slot_enabled_right = runMethod @"is_slot_enabled_right"
+
+is_smooth_scroll_enabled ::
+                           Method "is_smooth_scroll_enabled" cls sig => cls -> sig
+is_smooth_scroll_enabled = runMethod @"is_smooth_scroll_enabled"
+
+is_snap_controls_to_pixels_enabled ::
+                                     Method "is_snap_controls_to_pixels_enabled" cls sig =>
+                                     cls -> sig
+is_snap_controls_to_pixels_enabled
+  = runMethod @"is_snap_controls_to_pixels_enabled"
+
+is_sort_enabled :: Method "is_sort_enabled" cls sig => cls -> sig
+is_sort_enabled = runMethod @"is_sort_enabled"
+
+is_ssao_enabled :: Method "is_ssao_enabled" cls sig => cls -> sig
+is_ssao_enabled = runMethod @"is_ssao_enabled"
+
+is_ssr_enabled :: Method "is_ssr_enabled" cls sig => cls -> sig
+is_ssr_enabled = runMethod @"is_ssr_enabled"
+
+is_ssr_rough :: Method "is_ssr_rough" cls sig => cls -> sig
+is_ssr_rough = runMethod @"is_ssr_rough"
+
+is_static_body :: Method "is_static_body" cls sig => cls -> sig
+is_static_body = runMethod @"is_static_body"
+
+is_stdout_verbose ::
+                    Method "is_stdout_verbose" cls sig => cls -> sig
+is_stdout_verbose = runMethod @"is_stdout_verbose"
+
+is_stereo :: Method "is_stereo" cls sig => cls -> sig
+is_stereo = runMethod @"is_stereo"
+
+is_stopped :: Method "is_stopped" cls sig => cls -> sig
+is_stopped = runMethod @"is_stopped"
+
+is_stretch_enabled ::
+                     Method "is_stretch_enabled" cls sig => cls -> sig
+is_stretch_enabled = runMethod @"is_stretch_enabled"
+
+is_sync_to_physics_enabled ::
+                             Method "is_sync_to_physics_enabled" cls sig => cls -> sig
+is_sync_to_physics_enabled
+  = runMethod @"is_sync_to_physics_enabled"
+
+is_syntax_coloring_enabled ::
+                             Method "is_syntax_coloring_enabled" cls sig => cls -> sig
+is_syntax_coloring_enabled
+  = runMethod @"is_syntax_coloring_enabled"
+
+is_tap1_active :: Method "is_tap1_active" cls sig => cls -> sig
+is_tap1_active = runMethod @"is_tap1_active"
+
+is_tap2_active :: Method "is_tap2_active" cls sig => cls -> sig
+is_tap2_active = runMethod @"is_tap2_active"
+
+is_toggle_mode :: Method "is_toggle_mode" cls sig => cls -> sig
+is_toggle_mode = runMethod @"is_toggle_mode"
+
+is_tool :: Method "is_tool" cls sig => cls -> sig
+is_tool = runMethod @"is_tool"
+
+is_tracking_physics_step ::
+                           Method "is_tracking_physics_step" cls sig => cls -> sig
+is_tracking_physics_step = runMethod @"is_tracking_physics_step"
+
+is_transform_notification_enabled ::
+                                    Method "is_transform_notification_enabled" cls sig => cls -> sig
+is_transform_notification_enabled
+  = runMethod @"is_transform_notification_enabled"
+
+is_up_vector_enabled ::
+                       Method "is_up_vector_enabled" cls sig => cls -> sig
+is_up_vector_enabled = runMethod @"is_up_vector_enabled"
+
+is_uppercase :: Method "is_uppercase" cls sig => cls -> sig
+is_uppercase = runMethod @"is_uppercase"
+
+is_used_as_steering ::
+                      Method "is_used_as_steering" cls sig => cls -> sig
+is_used_as_steering = runMethod @"is_used_as_steering"
+
+is_used_as_traction ::
+                      Method "is_used_as_traction" cls sig => cls -> sig
+is_used_as_traction = runMethod @"is_used_as_traction"
+
+is_userfs_persistent ::
+                       Method "is_userfs_persistent" cls sig => cls -> sig
+is_userfs_persistent = runMethod @"is_userfs_persistent"
+
+is_using_bbcode :: Method "is_using_bbcode" cls sig => cls -> sig
+is_using_bbcode = runMethod @"is_using_bbcode"
+
+is_using_collision ::
+                     Method "is_using_collision" cls sig => cls -> sig
+is_using_collision = runMethod @"is_using_collision"
+
+is_using_continuous_collision_detection ::
+                                          Method "is_using_continuous_collision_detection" cls
+                                            sig =>
+                                          cls -> sig
+is_using_continuous_collision_detection
+  = runMethod @"is_using_continuous_collision_detection"
+
+is_using_custom_integrator ::
+                             Method "is_using_custom_integrator" cls sig => cls -> sig
+is_using_custom_integrator
+  = runMethod @"is_using_custom_integrator"
+
+is_using_font_oversampling ::
+                             Method "is_using_font_oversampling" cls sig => cls -> sig
+is_using_font_oversampling
+  = runMethod @"is_using_font_oversampling"
+
+is_using_magnet :: Method "is_using_magnet" cls sig => cls -> sig
+is_using_magnet = runMethod @"is_using_magnet"
+
+is_using_own_world ::
+                     Method "is_using_own_world" cls sig => cls -> sig
+is_using_own_world = runMethod @"is_using_own_world"
+
+is_using_reverb_bus ::
+                      Method "is_using_reverb_bus" cls sig => cls -> sig
+is_using_reverb_bus = runMethod @"is_using_reverb_bus"
+
+is_using_rounded_values ::
+                          Method "is_using_rounded_values" cls sig => cls -> sig
+is_using_rounded_values = runMethod @"is_using_rounded_values"
+
+is_using_snap :: Method "is_using_snap" cls sig => cls -> sig
+is_using_snap = runMethod @"is_using_snap"
+
+is_using_sync :: Method "is_using_sync" cls sig => cls -> sig
+is_using_sync = runMethod @"is_using_sync"
+
+is_using_threads :: Method "is_using_threads" cls sig => cls -> sig
+is_using_threads = runMethod @"is_using_threads"
+
+is_using_top_left ::
+                    Method "is_using_top_left" cls sig => cls -> sig
+is_using_top_left = runMethod @"is_using_top_left"
+
+is_v_drag_enabled ::
+                    Method "is_v_drag_enabled" cls sig => cls -> sig
+is_v_drag_enabled = runMethod @"is_v_drag_enabled"
+
+is_v_scroll_enabled ::
+                      Method "is_v_scroll_enabled" cls sig => cls -> sig
+is_v_scroll_enabled = runMethod @"is_v_scroll_enabled"
+
+is_valid :: Method "is_valid" cls sig => cls -> sig
+is_valid = runMethod @"is_valid"
+
+is_valid_connection_type ::
+                           Method "is_valid_connection_type" cls sig => cls -> sig
+is_valid_connection_type = runMethod @"is_valid_connection_type"
+
+is_valid_gateway :: Method "is_valid_gateway" cls sig => cls -> sig
+is_valid_gateway = runMethod @"is_valid_gateway"
+
+is_verify_ssl_enabled ::
+                        Method "is_verify_ssl_enabled" cls sig => cls -> sig
+is_verify_ssl_enabled = runMethod @"is_verify_ssl_enabled"
+
+is_vertical :: Method "is_vertical" cls sig => cls -> sig
+is_vertical = runMethod @"is_vertical"
+
+is_visible :: Method "is_visible" cls sig => cls -> sig
+is_visible = runMethod @"is_visible"
+
+is_visible_in_tree ::
+                     Method "is_visible_in_tree" cls sig => cls -> sig
+is_visible_in_tree = runMethod @"is_visible_in_tree"
+
+is_vsync_enabled :: Method "is_vsync_enabled" cls sig => cls -> sig
+is_vsync_enabled = runMethod @"is_vsync_enabled"
+
+is_window_always_on_top ::
+                          Method "is_window_always_on_top" cls sig => cls -> sig
+is_window_always_on_top = runMethod @"is_window_always_on_top"
+
+is_window_fullscreen ::
+                       Method "is_window_fullscreen" cls sig => cls -> sig
+is_window_fullscreen = runMethod @"is_window_fullscreen"
+
+is_window_maximized ::
+                      Method "is_window_maximized" cls sig => cls -> sig
+is_window_maximized = runMethod @"is_window_maximized"
+
+is_window_minimized ::
+                      Method "is_window_minimized" cls sig => cls -> sig
+is_window_minimized = runMethod @"is_window_minimized"
+
+is_window_resizable ::
+                      Method "is_window_resizable" cls sig => cls -> sig
+is_window_resizable = runMethod @"is_window_resizable"
+
+is_wrap_enabled :: Method "is_wrap_enabled" cls sig => cls -> sig
+is_wrap_enabled = runMethod @"is_wrap_enabled"
+
+is_y_sort_mode_enabled ::
+                         Method "is_y_sort_mode_enabled" cls sig => cls -> sig
+is_y_sort_mode_enabled = runMethod @"is_y_sort_mode_enabled"
+
+is_z_relative :: Method "is_z_relative" cls sig => cls -> sig
+is_z_relative = runMethod @"is_z_relative"
+
+iteration :: Method "iteration" cls sig => cls -> sig
+iteration = runMethod @"iteration"
+
+joint_create_cone_twist ::
+                          Method "joint_create_cone_twist" cls sig => cls -> sig
+joint_create_cone_twist = runMethod @"joint_create_cone_twist"
+
+joint_create_generic_6dof ::
+                            Method "joint_create_generic_6dof" cls sig => cls -> sig
+joint_create_generic_6dof = runMethod @"joint_create_generic_6dof"
+
+joint_create_hinge ::
+                     Method "joint_create_hinge" cls sig => cls -> sig
+joint_create_hinge = runMethod @"joint_create_hinge"
+
+joint_create_pin :: Method "joint_create_pin" cls sig => cls -> sig
+joint_create_pin = runMethod @"joint_create_pin"
+
+joint_create_slider ::
+                      Method "joint_create_slider" cls sig => cls -> sig
+joint_create_slider = runMethod @"joint_create_slider"
+
+joint_get_param :: Method "joint_get_param" cls sig => cls -> sig
+joint_get_param = runMethod @"joint_get_param"
+
+joint_get_solver_priority ::
+                            Method "joint_get_solver_priority" cls sig => cls -> sig
+joint_get_solver_priority = runMethod @"joint_get_solver_priority"
+
+joint_get_type :: Method "joint_get_type" cls sig => cls -> sig
+joint_get_type = runMethod @"joint_get_type"
+
+joint_set_param :: Method "joint_set_param" cls sig => cls -> sig
+joint_set_param = runMethod @"joint_set_param"
+
+joint_set_solver_priority ::
+                            Method "joint_set_solver_priority" cls sig => cls -> sig
+joint_set_solver_priority = runMethod @"joint_set_solver_priority"
+
+joy_connection_changed ::
+                         Method "joy_connection_changed" cls sig => cls -> sig
+joy_connection_changed = runMethod @"joy_connection_changed"
+
+kill :: Method "kill" cls sig => cls -> sig
+kill = runMethod @"kill"
+
+light_directional_set_blend_splits ::
+                                     Method "light_directional_set_blend_splits" cls sig =>
+                                     cls -> sig
+light_directional_set_blend_splits
+  = runMethod @"light_directional_set_blend_splits"
+
+light_directional_set_shadow_depth_range_mode ::
+                                                Method
+                                                  "light_directional_set_shadow_depth_range_mode"
+                                                  cls sig =>
+                                                cls -> sig
+light_directional_set_shadow_depth_range_mode
+  = runMethod @"light_directional_set_shadow_depth_range_mode"
+
+light_directional_set_shadow_mode ::
+                                    Method "light_directional_set_shadow_mode" cls sig => cls -> sig
+light_directional_set_shadow_mode
+  = runMethod @"light_directional_set_shadow_mode"
+
+light_omni_set_shadow_detail ::
+                               Method "light_omni_set_shadow_detail" cls sig => cls -> sig
+light_omni_set_shadow_detail
+  = runMethod @"light_omni_set_shadow_detail"
+
+light_omni_set_shadow_mode ::
+                             Method "light_omni_set_shadow_mode" cls sig => cls -> sig
+light_omni_set_shadow_mode
+  = runMethod @"light_omni_set_shadow_mode"
+
+light_set_color :: Method "light_set_color" cls sig => cls -> sig
+light_set_color = runMethod @"light_set_color"
+
+light_set_cull_mask ::
+                      Method "light_set_cull_mask" cls sig => cls -> sig
+light_set_cull_mask = runMethod @"light_set_cull_mask"
+
+light_set_negative ::
+                     Method "light_set_negative" cls sig => cls -> sig
+light_set_negative = runMethod @"light_set_negative"
+
+light_set_param :: Method "light_set_param" cls sig => cls -> sig
+light_set_param = runMethod @"light_set_param"
+
+light_set_projector ::
+                      Method "light_set_projector" cls sig => cls -> sig
+light_set_projector = runMethod @"light_set_projector"
+
+light_set_reverse_cull_face_mode ::
+                                   Method "light_set_reverse_cull_face_mode" cls sig => cls -> sig
+light_set_reverse_cull_face_mode
+  = runMethod @"light_set_reverse_cull_face_mode"
+
+light_set_shadow :: Method "light_set_shadow" cls sig => cls -> sig
+light_set_shadow = runMethod @"light_set_shadow"
+
+light_set_shadow_color ::
+                         Method "light_set_shadow_color" cls sig => cls -> sig
+light_set_shadow_color = runMethod @"light_set_shadow_color"
+
+lightmap_capture_create ::
+                          Method "lightmap_capture_create" cls sig => cls -> sig
+lightmap_capture_create = runMethod @"lightmap_capture_create"
+
+lightmap_capture_get_bounds ::
+                              Method "lightmap_capture_get_bounds" cls sig => cls -> sig
+lightmap_capture_get_bounds
+  = runMethod @"lightmap_capture_get_bounds"
+
+lightmap_capture_get_energy ::
+                              Method "lightmap_capture_get_energy" cls sig => cls -> sig
+lightmap_capture_get_energy
+  = runMethod @"lightmap_capture_get_energy"
+
+lightmap_capture_get_octree ::
+                              Method "lightmap_capture_get_octree" cls sig => cls -> sig
+lightmap_capture_get_octree
+  = runMethod @"lightmap_capture_get_octree"
+
+lightmap_capture_get_octree_cell_subdiv ::
+                                          Method "lightmap_capture_get_octree_cell_subdiv" cls
+                                            sig =>
+                                          cls -> sig
+lightmap_capture_get_octree_cell_subdiv
+  = runMethod @"lightmap_capture_get_octree_cell_subdiv"
+
+lightmap_capture_get_octree_cell_transform ::
+                                             Method "lightmap_capture_get_octree_cell_transform" cls
+                                               sig =>
+                                             cls -> sig
+lightmap_capture_get_octree_cell_transform
+  = runMethod @"lightmap_capture_get_octree_cell_transform"
+
+lightmap_capture_set_bounds ::
+                              Method "lightmap_capture_set_bounds" cls sig => cls -> sig
+lightmap_capture_set_bounds
+  = runMethod @"lightmap_capture_set_bounds"
+
+lightmap_capture_set_energy ::
+                              Method "lightmap_capture_set_energy" cls sig => cls -> sig
+lightmap_capture_set_energy
+  = runMethod @"lightmap_capture_set_energy"
+
+lightmap_capture_set_octree ::
+                              Method "lightmap_capture_set_octree" cls sig => cls -> sig
+lightmap_capture_set_octree
+  = runMethod @"lightmap_capture_set_octree"
+
+lightmap_capture_set_octree_cell_subdiv ::
+                                          Method "lightmap_capture_set_octree_cell_subdiv" cls
+                                            sig =>
+                                          cls -> sig
+lightmap_capture_set_octree_cell_subdiv
+  = runMethod @"lightmap_capture_set_octree_cell_subdiv"
+
+lightmap_capture_set_octree_cell_transform ::
+                                             Method "lightmap_capture_set_octree_cell_transform" cls
+                                               sig =>
+                                             cls -> sig
+lightmap_capture_set_octree_cell_transform
+  = runMethod @"lightmap_capture_set_octree_cell_transform"
+
+lightmap_unwrap :: Method "lightmap_unwrap" cls sig => cls -> sig
+lightmap_unwrap = runMethod @"lightmap_unwrap"
+
+line_intersects_line_2d ::
+                          Method "line_intersects_line_2d" cls sig => cls -> sig
+line_intersects_line_2d = runMethod @"line_intersects_line_2d"
+
+line_shape_create ::
+                    Method "line_shape_create" cls sig => cls -> sig
+line_shape_create = runMethod @"line_shape_create"
+
+list_dir_begin :: Method "list_dir_begin" cls sig => cls -> sig
+list_dir_begin = runMethod @"list_dir_begin"
+
+list_dir_end :: Method "list_dir_end" cls sig => cls -> sig
+list_dir_end = runMethod @"list_dir_end"
+
+listen :: Method "listen" cls sig => cls -> sig
+listen = runMethod @"listen"
+
+load :: Method "load" cls sig => cls -> sig
+load = runMethod @"load"
+
+load_from_globals ::
+                    Method "load_from_globals" cls sig => cls -> sig
+load_from_globals = runMethod @"load_from_globals"
+
+load_interactive :: Method "load_interactive" cls sig => cls -> sig
+load_interactive = runMethod @"load_interactive"
+
+load_jpg_from_buffer ::
+                       Method "load_jpg_from_buffer" cls sig => cls -> sig
+load_jpg_from_buffer = runMethod @"load_jpg_from_buffer"
+
+load_png_from_buffer ::
+                       Method "load_png_from_buffer" cls sig => cls -> sig
+load_png_from_buffer = runMethod @"load_png_from_buffer"
+
+load_resource_pack ::
+                     Method "load_resource_pack" cls sig => cls -> sig
+load_resource_pack = runMethod @"load_resource_pack"
+
+load_webp_from_buffer ::
+                        Method "load_webp_from_buffer" cls sig => cls -> sig
+load_webp_from_buffer = runMethod @"load_webp_from_buffer"
+
+localize_path :: Method "localize_path" cls sig => cls -> sig
+localize_path = runMethod @"localize_path"
+
+lock :: Method "lock" cls sig => cls -> sig
+lock = runMethod @"lock"
+
+look_at :: Method "look_at" cls sig => cls -> sig
+look_at = runMethod @"look_at"
+
+look_at_from_position ::
+                        Method "look_at_from_position" cls sig => cls -> sig
+look_at_from_position = runMethod @"look_at_from_position"
+
+make_atlas :: Method "make_atlas" cls sig => cls -> sig
+make_atlas = runMethod @"make_atlas"
+
+make_baked_meshes ::
+                    Method "make_baked_meshes" cls sig => cls -> sig
+make_baked_meshes = runMethod @"make_baked_meshes"
+
+make_bottom_panel_item_visible ::
+                                 Method "make_bottom_panel_item_visible" cls sig => cls -> sig
+make_bottom_panel_item_visible
+  = runMethod @"make_bottom_panel_item_visible"
+
+make_canvas_position_local ::
+                             Method "make_canvas_position_local" cls sig => cls -> sig
+make_canvas_position_local
+  = runMethod @"make_canvas_position_local"
+
+make_convex_from_brothers ::
+                            Method "make_convex_from_brothers" cls sig => cls -> sig
+make_convex_from_brothers = runMethod @"make_convex_from_brothers"
+
+make_current :: Method "make_current" cls sig => cls -> sig
+make_current = runMethod @"make_current"
+
+make_dir :: Method "make_dir" cls sig => cls -> sig
+make_dir = runMethod @"make_dir"
+
+make_dir_recursive ::
+                     Method "make_dir_recursive" cls sig => cls -> sig
+make_dir_recursive = runMethod @"make_dir_recursive"
+
+make_input_local :: Method "make_input_local" cls sig => cls -> sig
+make_input_local = runMethod @"make_input_local"
+
+make_mesh_previews ::
+                     Method "make_mesh_previews" cls sig => cls -> sig
+make_mesh_previews = runMethod @"make_mesh_previews"
+
+make_polygons_from_outlines ::
+                              Method "make_polygons_from_outlines" cls sig => cls -> sig
+make_polygons_from_outlines
+  = runMethod @"make_polygons_from_outlines"
+
+make_sphere_mesh :: Method "make_sphere_mesh" cls sig => cls -> sig
+make_sphere_mesh = runMethod @"make_sphere_mesh"
+
+make_visible :: Method "make_visible" cls sig => cls -> sig
+make_visible = runMethod @"make_visible"
+
+map_to_world :: Method "map_to_world" cls sig => cls -> sig
+map_to_world = runMethod @"map_to_world"
+
+material_create :: Method "material_create" cls sig => cls -> sig
+material_create = runMethod @"material_create"
+
+material_get_param ::
+                     Method "material_get_param" cls sig => cls -> sig
+material_get_param = runMethod @"material_get_param"
+
+material_get_param_default ::
+                             Method "material_get_param_default" cls sig => cls -> sig
+material_get_param_default
+  = runMethod @"material_get_param_default"
+
+material_get_shader ::
+                      Method "material_get_shader" cls sig => cls -> sig
+material_get_shader = runMethod @"material_get_shader"
+
+material_set_line_width ::
+                          Method "material_set_line_width" cls sig => cls -> sig
+material_set_line_width = runMethod @"material_set_line_width"
+
+material_set_next_pass ::
+                         Method "material_set_next_pass" cls sig => cls -> sig
+material_set_next_pass = runMethod @"material_set_next_pass"
+
+material_set_param ::
+                     Method "material_set_param" cls sig => cls -> sig
+material_set_param = runMethod @"material_set_param"
+
+material_set_render_priority ::
+                               Method "material_set_render_priority" cls sig => cls -> sig
+material_set_render_priority
+  = runMethod @"material_set_render_priority"
+
+material_set_shader ::
+                      Method "material_set_shader" cls sig => cls -> sig
+material_set_shader = runMethod @"material_set_shader"
+
+menu_option :: Method "menu_option" cls sig => cls -> sig
+menu_option = runMethod @"menu_option"
+
+mesh_add_surface_from_arrays ::
+                               Method "mesh_add_surface_from_arrays" cls sig => cls -> sig
+mesh_add_surface_from_arrays
+  = runMethod @"mesh_add_surface_from_arrays"
+
+mesh_clear :: Method "mesh_clear" cls sig => cls -> sig
+mesh_clear = runMethod @"mesh_clear"
+
+mesh_create :: Method "mesh_create" cls sig => cls -> sig
+mesh_create = runMethod @"mesh_create"
+
+mesh_get_blend_shape_count ::
+                             Method "mesh_get_blend_shape_count" cls sig => cls -> sig
+mesh_get_blend_shape_count
+  = runMethod @"mesh_get_blend_shape_count"
+
+mesh_get_blend_shape_mode ::
+                            Method "mesh_get_blend_shape_mode" cls sig => cls -> sig
+mesh_get_blend_shape_mode = runMethod @"mesh_get_blend_shape_mode"
+
+mesh_get_custom_aabb ::
+                       Method "mesh_get_custom_aabb" cls sig => cls -> sig
+mesh_get_custom_aabb = runMethod @"mesh_get_custom_aabb"
+
+mesh_get_surface_count ::
+                         Method "mesh_get_surface_count" cls sig => cls -> sig
+mesh_get_surface_count = runMethod @"mesh_get_surface_count"
+
+mesh_remove_surface ::
+                      Method "mesh_remove_surface" cls sig => cls -> sig
+mesh_remove_surface = runMethod @"mesh_remove_surface"
+
+mesh_set_blend_shape_count ::
+                             Method "mesh_set_blend_shape_count" cls sig => cls -> sig
+mesh_set_blend_shape_count
+  = runMethod @"mesh_set_blend_shape_count"
+
+mesh_set_blend_shape_mode ::
+                            Method "mesh_set_blend_shape_mode" cls sig => cls -> sig
+mesh_set_blend_shape_mode = runMethod @"mesh_set_blend_shape_mode"
+
+mesh_set_custom_aabb ::
+                       Method "mesh_set_custom_aabb" cls sig => cls -> sig
+mesh_set_custom_aabb = runMethod @"mesh_set_custom_aabb"
+
+mesh_surface_get_aabb ::
+                        Method "mesh_surface_get_aabb" cls sig => cls -> sig
+mesh_surface_get_aabb = runMethod @"mesh_surface_get_aabb"
+
+mesh_surface_get_array ::
+                         Method "mesh_surface_get_array" cls sig => cls -> sig
+mesh_surface_get_array = runMethod @"mesh_surface_get_array"
+
+mesh_surface_get_array_index_len ::
+                                   Method "mesh_surface_get_array_index_len" cls sig => cls -> sig
+mesh_surface_get_array_index_len
+  = runMethod @"mesh_surface_get_array_index_len"
+
+mesh_surface_get_array_len ::
+                             Method "mesh_surface_get_array_len" cls sig => cls -> sig
+mesh_surface_get_array_len
+  = runMethod @"mesh_surface_get_array_len"
+
+mesh_surface_get_arrays ::
+                          Method "mesh_surface_get_arrays" cls sig => cls -> sig
+mesh_surface_get_arrays = runMethod @"mesh_surface_get_arrays"
+
+mesh_surface_get_blend_shape_arrays ::
+                                      Method "mesh_surface_get_blend_shape_arrays" cls sig =>
+                                      cls -> sig
+mesh_surface_get_blend_shape_arrays
+  = runMethod @"mesh_surface_get_blend_shape_arrays"
+
+mesh_surface_get_format ::
+                          Method "mesh_surface_get_format" cls sig => cls -> sig
+mesh_surface_get_format = runMethod @"mesh_surface_get_format"
+
+mesh_surface_get_format_offset ::
+                                 Method "mesh_surface_get_format_offset" cls sig => cls -> sig
+mesh_surface_get_format_offset
+  = runMethod @"mesh_surface_get_format_offset"
+
+mesh_surface_get_format_stride ::
+                                 Method "mesh_surface_get_format_stride" cls sig => cls -> sig
+mesh_surface_get_format_stride
+  = runMethod @"mesh_surface_get_format_stride"
+
+mesh_surface_get_index_array ::
+                               Method "mesh_surface_get_index_array" cls sig => cls -> sig
+mesh_surface_get_index_array
+  = runMethod @"mesh_surface_get_index_array"
+
+mesh_surface_get_material ::
+                            Method "mesh_surface_get_material" cls sig => cls -> sig
+mesh_surface_get_material = runMethod @"mesh_surface_get_material"
+
+mesh_surface_get_primitive_type ::
+                                  Method "mesh_surface_get_primitive_type" cls sig => cls -> sig
+mesh_surface_get_primitive_type
+  = runMethod @"mesh_surface_get_primitive_type"
+
+mesh_surface_get_skeleton_aabb ::
+                                 Method "mesh_surface_get_skeleton_aabb" cls sig => cls -> sig
+mesh_surface_get_skeleton_aabb
+  = runMethod @"mesh_surface_get_skeleton_aabb"
+
+mesh_surface_set_material ::
+                            Method "mesh_surface_set_material" cls sig => cls -> sig
+mesh_surface_set_material = runMethod @"mesh_surface_set_material"
+
+mesh_surface_update_region ::
+                             Method "mesh_surface_update_region" cls sig => cls -> sig
+mesh_surface_update_region
+  = runMethod @"mesh_surface_update_region"
+
+method_track_get_key_indices ::
+                               Method "method_track_get_key_indices" cls sig => cls -> sig
+method_track_get_key_indices
+  = runMethod @"method_track_get_key_indices"
+
+method_track_get_name ::
+                        Method "method_track_get_name" cls sig => cls -> sig
+method_track_get_name = runMethod @"method_track_get_name"
+
+method_track_get_params ::
+                          Method "method_track_get_params" cls sig => cls -> sig
+method_track_get_params = runMethod @"method_track_get_params"
+
+minimum_size_changed ::
+                       Method "minimum_size_changed" cls sig => cls -> sig
+minimum_size_changed = runMethod @"minimum_size_changed"
+
+mix_node_get_amount ::
+                      Method "mix_node_get_amount" cls sig => cls -> sig
+mix_node_get_amount = runMethod @"mix_node_get_amount"
+
+mix_node_set_amount ::
+                      Method "mix_node_set_amount" cls sig => cls -> sig
+mix_node_set_amount = runMethod @"mix_node_set_amount"
+
+move_and_collide :: Method "move_and_collide" cls sig => cls -> sig
+move_and_collide = runMethod @"move_and_collide"
+
+move_and_slide :: Method "move_and_slide" cls sig => cls -> sig
+move_and_slide = runMethod @"move_and_slide"
+
+move_and_slide_with_snap ::
+                           Method "move_and_slide_with_snap" cls sig => cls -> sig
+move_and_slide_with_snap = runMethod @"move_and_slide_with_snap"
+
+move_bus :: Method "move_bus" cls sig => cls -> sig
+move_bus = runMethod @"move_bus"
+
+move_child :: Method "move_child" cls sig => cls -> sig
+move_child = runMethod @"move_child"
+
+move_item :: Method "move_item" cls sig => cls -> sig
+move_item = runMethod @"move_item"
+
+move_local_x :: Method "move_local_x" cls sig => cls -> sig
+move_local_x = runMethod @"move_local_x"
+
+move_local_y :: Method "move_local_y" cls sig => cls -> sig
+move_local_y = runMethod @"move_local_y"
+
+move_tab :: Method "move_tab" cls sig => cls -> sig
+move_tab = runMethod @"move_tab"
+
+move_to_bottom :: Method "move_to_bottom" cls sig => cls -> sig
+move_to_bottom = runMethod @"move_to_bottom"
+
+move_to_top :: Method "move_to_top" cls sig => cls -> sig
+move_to_top = runMethod @"move_to_top"
+
+multimesh_allocate ::
+                     Method "multimesh_allocate" cls sig => cls -> sig
+multimesh_allocate = runMethod @"multimesh_allocate"
+
+multimesh_get_aabb ::
+                     Method "multimesh_get_aabb" cls sig => cls -> sig
+multimesh_get_aabb = runMethod @"multimesh_get_aabb"
+
+multimesh_get_instance_count ::
+                               Method "multimesh_get_instance_count" cls sig => cls -> sig
+multimesh_get_instance_count
+  = runMethod @"multimesh_get_instance_count"
+
+multimesh_get_mesh ::
+                     Method "multimesh_get_mesh" cls sig => cls -> sig
+multimesh_get_mesh = runMethod @"multimesh_get_mesh"
+
+multimesh_get_visible_instances ::
+                                  Method "multimesh_get_visible_instances" cls sig => cls -> sig
+multimesh_get_visible_instances
+  = runMethod @"multimesh_get_visible_instances"
+
+multimesh_instance_get_color ::
+                               Method "multimesh_instance_get_color" cls sig => cls -> sig
+multimesh_instance_get_color
+  = runMethod @"multimesh_instance_get_color"
+
+multimesh_instance_get_custom_data ::
+                                     Method "multimesh_instance_get_custom_data" cls sig =>
+                                     cls -> sig
+multimesh_instance_get_custom_data
+  = runMethod @"multimesh_instance_get_custom_data"
+
+multimesh_instance_get_transform ::
+                                   Method "multimesh_instance_get_transform" cls sig => cls -> sig
+multimesh_instance_get_transform
+  = runMethod @"multimesh_instance_get_transform"
+
+multimesh_instance_get_transform_2d ::
+                                      Method "multimesh_instance_get_transform_2d" cls sig =>
+                                      cls -> sig
+multimesh_instance_get_transform_2d
+  = runMethod @"multimesh_instance_get_transform_2d"
+
+multimesh_instance_set_color ::
+                               Method "multimesh_instance_set_color" cls sig => cls -> sig
+multimesh_instance_set_color
+  = runMethod @"multimesh_instance_set_color"
+
+multimesh_instance_set_custom_data ::
+                                     Method "multimesh_instance_set_custom_data" cls sig =>
+                                     cls -> sig
+multimesh_instance_set_custom_data
+  = runMethod @"multimesh_instance_set_custom_data"
+
+multimesh_instance_set_transform ::
+                                   Method "multimesh_instance_set_transform" cls sig => cls -> sig
+multimesh_instance_set_transform
+  = runMethod @"multimesh_instance_set_transform"
+
+multimesh_instance_set_transform_2d ::
+                                      Method "multimesh_instance_set_transform_2d" cls sig =>
+                                      cls -> sig
+multimesh_instance_set_transform_2d
+  = runMethod @"multimesh_instance_set_transform_2d"
+
+multimesh_set_as_bulk_array ::
+                              Method "multimesh_set_as_bulk_array" cls sig => cls -> sig
+multimesh_set_as_bulk_array
+  = runMethod @"multimesh_set_as_bulk_array"
+
+multimesh_set_mesh ::
+                     Method "multimesh_set_mesh" cls sig => cls -> sig
+multimesh_set_mesh = runMethod @"multimesh_set_mesh"
+
+multimesh_set_visible_instances ::
+                                  Method "multimesh_set_visible_instances" cls sig => cls -> sig
+multimesh_set_visible_instances
+  = runMethod @"multimesh_set_visible_instances"
+
+native_video_is_playing ::
+                          Method "native_video_is_playing" cls sig => cls -> sig
+native_video_is_playing = runMethod @"native_video_is_playing"
+
+native_video_pause ::
+                     Method "native_video_pause" cls sig => cls -> sig
+native_video_pause = runMethod @"native_video_pause"
+
+native_video_play ::
+                    Method "native_video_play" cls sig => cls -> sig
+native_video_play = runMethod @"native_video_play"
+
+native_video_stop ::
+                    Method "native_video_stop" cls sig => cls -> sig
+native_video_stop = runMethod @"native_video_stop"
+
+native_video_unpause ::
+                       Method "native_video_unpause" cls sig => cls -> sig
+native_video_unpause = runMethod @"native_video_unpause"
+
+navmesh_add :: Method "navmesh_add" cls sig => cls -> sig
+navmesh_add = runMethod @"navmesh_add"
+
+navmesh_remove :: Method "navmesh_remove" cls sig => cls -> sig
+navmesh_remove = runMethod @"navmesh_remove"
+
+navmesh_set_transform ::
+                        Method "navmesh_set_transform" cls sig => cls -> sig
+navmesh_set_transform = runMethod @"navmesh_set_transform"
+
+navpoly_add :: Method "navpoly_add" cls sig => cls -> sig
+navpoly_add = runMethod @"navpoly_add"
+
+navpoly_remove :: Method "navpoly_remove" cls sig => cls -> sig
+navpoly_remove = runMethod @"navpoly_remove"
+
+navpoly_set_transform ::
+                        Method "navpoly_set_transform" cls sig => cls -> sig
+navpoly_set_transform = runMethod @"navpoly_set_transform"
+
+new :: Method "new" cls sig => cls -> sig
+new = runMethod @"new"
+
+newline :: Method "newline" cls sig => cls -> sig
+newline = runMethod @"newline"
+
+node_exists :: Method "node_exists" cls sig => cls -> sig
+node_exists = runMethod @"node_exists"
+
+node_get_input_count ::
+                       Method "node_get_input_count" cls sig => cls -> sig
+node_get_input_count = runMethod @"node_get_input_count"
+
+node_get_input_source ::
+                        Method "node_get_input_source" cls sig => cls -> sig
+node_get_input_source = runMethod @"node_get_input_source"
+
+node_get_position ::
+                    Method "node_get_position" cls sig => cls -> sig
+node_get_position = runMethod @"node_get_position"
+
+node_get_type :: Method "node_get_type" cls sig => cls -> sig
+node_get_type = runMethod @"node_get_type"
+
+node_rename :: Method "node_rename" cls sig => cls -> sig
+node_rename = runMethod @"node_rename"
+
+node_set_position ::
+                    Method "node_set_position" cls sig => cls -> sig
+node_set_position = runMethod @"node_set_position"
+
+normalmap_to_xy :: Method "normalmap_to_xy" cls sig => cls -> sig
+normalmap_to_xy = runMethod @"normalmap_to_xy"
+
+notification :: Method "notification" cls sig => cls -> sig
+notification = runMethod @"notification"
+
+notify_group :: Method "notify_group" cls sig => cls -> sig
+notify_group = runMethod @"notify_group"
+
+notify_group_flags ::
+                     Method "notify_group_flags" cls sig => cls -> sig
+notify_group_flags = runMethod @"notify_group_flags"
+
+omni_light_create ::
+                    Method "omni_light_create" cls sig => cls -> sig
+omni_light_create = runMethod @"omni_light_create"
+
+oneshot_node_get_autorestart_delay ::
+                                     Method "oneshot_node_get_autorestart_delay" cls sig =>
+                                     cls -> sig
+oneshot_node_get_autorestart_delay
+  = runMethod @"oneshot_node_get_autorestart_delay"
+
+oneshot_node_get_autorestart_random_delay ::
+                                            Method "oneshot_node_get_autorestart_random_delay" cls
+                                              sig =>
+                                            cls -> sig
+oneshot_node_get_autorestart_random_delay
+  = runMethod @"oneshot_node_get_autorestart_random_delay"
+
+oneshot_node_get_fadein_time ::
+                               Method "oneshot_node_get_fadein_time" cls sig => cls -> sig
+oneshot_node_get_fadein_time
+  = runMethod @"oneshot_node_get_fadein_time"
+
+oneshot_node_get_fadeout_time ::
+                                Method "oneshot_node_get_fadeout_time" cls sig => cls -> sig
+oneshot_node_get_fadeout_time
+  = runMethod @"oneshot_node_get_fadeout_time"
+
+oneshot_node_has_autorestart ::
+                               Method "oneshot_node_has_autorestart" cls sig => cls -> sig
+oneshot_node_has_autorestart
+  = runMethod @"oneshot_node_has_autorestart"
+
+oneshot_node_is_active ::
+                         Method "oneshot_node_is_active" cls sig => cls -> sig
+oneshot_node_is_active = runMethod @"oneshot_node_is_active"
+
+oneshot_node_set_autorestart ::
+                               Method "oneshot_node_set_autorestart" cls sig => cls -> sig
+oneshot_node_set_autorestart
+  = runMethod @"oneshot_node_set_autorestart"
+
+oneshot_node_set_autorestart_delay ::
+                                     Method "oneshot_node_set_autorestart_delay" cls sig =>
+                                     cls -> sig
+oneshot_node_set_autorestart_delay
+  = runMethod @"oneshot_node_set_autorestart_delay"
+
+oneshot_node_set_autorestart_random_delay ::
+                                            Method "oneshot_node_set_autorestart_random_delay" cls
+                                              sig =>
+                                            cls -> sig
+oneshot_node_set_autorestart_random_delay
+  = runMethod @"oneshot_node_set_autorestart_random_delay"
+
+oneshot_node_set_fadein_time ::
+                               Method "oneshot_node_set_fadein_time" cls sig => cls -> sig
+oneshot_node_set_fadein_time
+  = runMethod @"oneshot_node_set_fadein_time"
+
+oneshot_node_set_fadeout_time ::
+                                Method "oneshot_node_set_fadeout_time" cls sig => cls -> sig
+oneshot_node_set_fadeout_time
+  = runMethod @"oneshot_node_set_fadeout_time"
+
+oneshot_node_set_filter_path ::
+                               Method "oneshot_node_set_filter_path" cls sig => cls -> sig
+oneshot_node_set_filter_path
+  = runMethod @"oneshot_node_set_filter_path"
+
+oneshot_node_start ::
+                     Method "oneshot_node_start" cls sig => cls -> sig
+oneshot_node_start = runMethod @"oneshot_node_start"
+
+oneshot_node_stop ::
+                    Method "oneshot_node_stop" cls sig => cls -> sig
+oneshot_node_stop = runMethod @"oneshot_node_stop"
+
+opaque_to_polygons ::
+                     Method "opaque_to_polygons" cls sig => cls -> sig
+opaque_to_polygons = runMethod @"opaque_to_polygons"
+
+open :: Method "open" cls sig => cls -> sig
+open = runMethod @"open"
+
+open_buffer :: Method "open_buffer" cls sig => cls -> sig
+open_buffer = runMethod @"open_buffer"
+
+open_compressed :: Method "open_compressed" cls sig => cls -> sig
+open_compressed = runMethod @"open_compressed"
+
+open_encrypted :: Method "open_encrypted" cls sig => cls -> sig
+open_encrypted = runMethod @"open_encrypted"
+
+open_encrypted_with_pass ::
+                           Method "open_encrypted_with_pass" cls sig => cls -> sig
+open_encrypted_with_pass = runMethod @"open_encrypted_with_pass"
+
+open_midi_inputs :: Method "open_midi_inputs" cls sig => cls -> sig
+open_midi_inputs = runMethod @"open_midi_inputs"
+
+open_scene_from_path ::
+                       Method "open_scene_from_path" cls sig => cls -> sig
+open_scene_from_path = runMethod @"open_scene_from_path"
+
+open_script_create_dialog ::
+                            Method "open_script_create_dialog" cls sig => cls -> sig
+open_script_create_dialog = runMethod @"open_script_create_dialog"
+
+orthonormalize :: Method "orthonormalize" cls sig => cls -> sig
+orthonormalize = runMethod @"orthonormalize"
+
+overlaps_area :: Method "overlaps_area" cls sig => cls -> sig
+overlaps_area = runMethod @"overlaps_area"
+
+overlaps_body :: Method "overlaps_body" cls sig => cls -> sig
+overlaps_body = runMethod @"overlaps_body"
+
+pack :: Method "pack" cls sig => cls -> sig
+pack = runMethod @"pack"
+
+parse :: Method "parse" cls sig => cls -> sig
+parse = runMethod @"parse"
+
+parse_bbcode :: Method "parse_bbcode" cls sig => cls -> sig
+parse_bbcode = runMethod @"parse_bbcode"
+
+parse_begin :: Method "parse_begin" cls sig => cls -> sig
+parse_begin = runMethod @"parse_begin"
+
+parse_category :: Method "parse_category" cls sig => cls -> sig
+parse_category = runMethod @"parse_category"
+
+parse_end :: Method "parse_end" cls sig => cls -> sig
+parse_end = runMethod @"parse_end"
+
+parse_input_event ::
+                    Method "parse_input_event" cls sig => cls -> sig
+parse_input_event = runMethod @"parse_input_event"
+
+parse_property :: Method "parse_property" cls sig => cls -> sig
+parse_property = runMethod @"parse_property"
+
+particles_create :: Method "particles_create" cls sig => cls -> sig
+particles_create = runMethod @"particles_create"
+
+particles_get_current_aabb ::
+                             Method "particles_get_current_aabb" cls sig => cls -> sig
+particles_get_current_aabb
+  = runMethod @"particles_get_current_aabb"
+
+particles_get_emitting ::
+                         Method "particles_get_emitting" cls sig => cls -> sig
+particles_get_emitting = runMethod @"particles_get_emitting"
+
+particles_restart ::
+                    Method "particles_restart" cls sig => cls -> sig
+particles_restart = runMethod @"particles_restart"
+
+particles_set_amount ::
+                       Method "particles_set_amount" cls sig => cls -> sig
+particles_set_amount = runMethod @"particles_set_amount"
+
+particles_set_custom_aabb ::
+                            Method "particles_set_custom_aabb" cls sig => cls -> sig
+particles_set_custom_aabb = runMethod @"particles_set_custom_aabb"
+
+particles_set_draw_order ::
+                           Method "particles_set_draw_order" cls sig => cls -> sig
+particles_set_draw_order = runMethod @"particles_set_draw_order"
+
+particles_set_draw_pass_mesh ::
+                               Method "particles_set_draw_pass_mesh" cls sig => cls -> sig
+particles_set_draw_pass_mesh
+  = runMethod @"particles_set_draw_pass_mesh"
+
+particles_set_draw_passes ::
+                            Method "particles_set_draw_passes" cls sig => cls -> sig
+particles_set_draw_passes = runMethod @"particles_set_draw_passes"
+
+particles_set_emission_transform ::
+                                   Method "particles_set_emission_transform" cls sig => cls -> sig
+particles_set_emission_transform
+  = runMethod @"particles_set_emission_transform"
+
+particles_set_emitting ::
+                         Method "particles_set_emitting" cls sig => cls -> sig
+particles_set_emitting = runMethod @"particles_set_emitting"
+
+particles_set_explosiveness_ratio ::
+                                    Method "particles_set_explosiveness_ratio" cls sig => cls -> sig
+particles_set_explosiveness_ratio
+  = runMethod @"particles_set_explosiveness_ratio"
+
+particles_set_fixed_fps ::
+                          Method "particles_set_fixed_fps" cls sig => cls -> sig
+particles_set_fixed_fps = runMethod @"particles_set_fixed_fps"
+
+particles_set_fractional_delta ::
+                                 Method "particles_set_fractional_delta" cls sig => cls -> sig
+particles_set_fractional_delta
+  = runMethod @"particles_set_fractional_delta"
+
+particles_set_lifetime ::
+                         Method "particles_set_lifetime" cls sig => cls -> sig
+particles_set_lifetime = runMethod @"particles_set_lifetime"
+
+particles_set_one_shot ::
+                         Method "particles_set_one_shot" cls sig => cls -> sig
+particles_set_one_shot = runMethod @"particles_set_one_shot"
+
+particles_set_pre_process_time ::
+                                 Method "particles_set_pre_process_time" cls sig => cls -> sig
+particles_set_pre_process_time
+  = runMethod @"particles_set_pre_process_time"
+
+particles_set_process_material ::
+                                 Method "particles_set_process_material" cls sig => cls -> sig
+particles_set_process_material
+  = runMethod @"particles_set_process_material"
+
+particles_set_randomness_ratio ::
+                                 Method "particles_set_randomness_ratio" cls sig => cls -> sig
+particles_set_randomness_ratio
+  = runMethod @"particles_set_randomness_ratio"
+
+particles_set_speed_scale ::
+                            Method "particles_set_speed_scale" cls sig => cls -> sig
+particles_set_speed_scale = runMethod @"particles_set_speed_scale"
+
+particles_set_use_local_coordinates ::
+                                      Method "particles_set_use_local_coordinates" cls sig =>
+                                      cls -> sig
+particles_set_use_local_coordinates
+  = runMethod @"particles_set_use_local_coordinates"
+
+paste :: Method "paste" cls sig => cls -> sig
+paste = runMethod @"paste"
+
+pck_start :: Method "pck_start" cls sig => cls -> sig
+pck_start = runMethod @"pck_start"
+
+physical_bones_add_collision_exception ::
+                                         Method "physical_bones_add_collision_exception" cls sig =>
+                                         cls -> sig
+physical_bones_add_collision_exception
+  = runMethod @"physical_bones_add_collision_exception"
+
+physical_bones_remove_collision_exception ::
+                                            Method "physical_bones_remove_collision_exception" cls
+                                              sig =>
+                                            cls -> sig
+physical_bones_remove_collision_exception
+  = runMethod @"physical_bones_remove_collision_exception"
+
+physical_bones_start_simulation ::
+                                  Method "physical_bones_start_simulation" cls sig => cls -> sig
+physical_bones_start_simulation
+  = runMethod @"physical_bones_start_simulation"
+
+physical_bones_stop_simulation ::
+                                 Method "physical_bones_stop_simulation" cls sig => cls -> sig
+physical_bones_stop_simulation
+  = runMethod @"physical_bones_stop_simulation"
+
+pin_joint_create :: Method "pin_joint_create" cls sig => cls -> sig
+pin_joint_create = runMethod @"pin_joint_create"
+
+pin_joint_get_local_a ::
+                        Method "pin_joint_get_local_a" cls sig => cls -> sig
+pin_joint_get_local_a = runMethod @"pin_joint_get_local_a"
+
+pin_joint_get_local_b ::
+                        Method "pin_joint_get_local_b" cls sig => cls -> sig
+pin_joint_get_local_b = runMethod @"pin_joint_get_local_b"
+
+pin_joint_get_param ::
+                      Method "pin_joint_get_param" cls sig => cls -> sig
+pin_joint_get_param = runMethod @"pin_joint_get_param"
+
+pin_joint_set_local_a ::
+                        Method "pin_joint_set_local_a" cls sig => cls -> sig
+pin_joint_set_local_a = runMethod @"pin_joint_set_local_a"
+
+pin_joint_set_local_b ::
+                        Method "pin_joint_set_local_b" cls sig => cls -> sig
+pin_joint_set_local_b = runMethod @"pin_joint_set_local_b"
+
+pin_joint_set_param ::
+                      Method "pin_joint_set_param" cls sig => cls -> sig
+pin_joint_set_param = runMethod @"pin_joint_set_param"
+
+play :: Method "play" cls sig => cls -> sig
+play = runMethod @"play"
+
+play_backwards :: Method "play_backwards" cls sig => cls -> sig
+play_backwards = runMethod @"play_backwards"
+
+point_is_inside_triangle ::
+                           Method "point_is_inside_triangle" cls sig => cls -> sig
+point_is_inside_triangle = runMethod @"point_is_inside_triangle"
+
+poll :: Method "poll" cls sig => cls -> sig
+poll = runMethod @"poll"
+
+pop :: Method "pop" cls sig => cls -> sig
+pop = runMethod @"pop"
+
+popup :: Method "popup" cls sig => cls -> sig
+popup = runMethod @"popup"
+
+popup_centered :: Method "popup_centered" cls sig => cls -> sig
+popup_centered = runMethod @"popup_centered"
+
+popup_centered_minsize ::
+                         Method "popup_centered_minsize" cls sig => cls -> sig
+popup_centered_minsize = runMethod @"popup_centered_minsize"
+
+popup_centered_ratio ::
+                       Method "popup_centered_ratio" cls sig => cls -> sig
+popup_centered_ratio = runMethod @"popup_centered_ratio"
+
+ports_changed_notify ::
+                       Method "ports_changed_notify" cls sig => cls -> sig
+ports_changed_notify = runMethod @"ports_changed_notify"
+
+post :: Method "post" cls sig => cls -> sig
+post = runMethod @"post"
+
+post_import :: Method "post_import" cls sig => cls -> sig
+post_import = runMethod @"post_import"
+
+premultiply_alpha ::
+                    Method "premultiply_alpha" cls sig => cls -> sig
+premultiply_alpha = runMethod @"premultiply_alpha"
+
+print :: Method "print" cls sig => cls -> sig
+print = runMethod @"print"
+
+print_all_resources ::
+                      Method "print_all_resources" cls sig => cls -> sig
+print_all_resources = runMethod @"print_all_resources"
+
+print_all_textures_by_size ::
+                             Method "print_all_textures_by_size" cls sig => cls -> sig
+print_all_textures_by_size
+  = runMethod @"print_all_textures_by_size"
+
+print_resources_by_type ::
+                          Method "print_resources_by_type" cls sig => cls -> sig
+print_resources_by_type = runMethod @"print_resources_by_type"
+
+print_resources_in_use ::
+                         Method "print_resources_in_use" cls sig => cls -> sig
+print_resources_in_use = runMethod @"print_resources_in_use"
+
+print_stray_nodes ::
+                    Method "print_stray_nodes" cls sig => cls -> sig
+print_stray_nodes = runMethod @"print_stray_nodes"
+
+print_tree :: Method "print_tree" cls sig => cls -> sig
+print_tree = runMethod @"print_tree"
+
+print_tree_pretty ::
+                    Method "print_tree_pretty" cls sig => cls -> sig
+print_tree_pretty = runMethod @"print_tree_pretty"
+
+process :: Method "process" cls sig => cls -> sig
+process = runMethod @"process"
+
+project_local_ray_normal ::
+                           Method "project_local_ray_normal" cls sig => cls -> sig
+project_local_ray_normal = runMethod @"project_local_ray_normal"
+
+project_position :: Method "project_position" cls sig => cls -> sig
+project_position = runMethod @"project_position"
+
+project_ray_normal ::
+                     Method "project_ray_normal" cls sig => cls -> sig
+project_ray_normal = runMethod @"project_ray_normal"
+
+project_ray_origin ::
+                     Method "project_ray_origin" cls sig => cls -> sig
+project_ray_origin = runMethod @"project_ray_origin"
+
+propagate_call :: Method "propagate_call" cls sig => cls -> sig
+propagate_call = runMethod @"propagate_call"
+
+propagate_notification ::
+                         Method "propagate_notification" cls sig => cls -> sig
+propagate_notification = runMethod @"propagate_notification"
+
+property_can_revert ::
+                      Method "property_can_revert" cls sig => cls -> sig
+property_can_revert = runMethod @"property_can_revert"
+
+property_get_revert ::
+                      Method "property_get_revert" cls sig => cls -> sig
+property_get_revert = runMethod @"property_get_revert"
+
+property_list_changed_notify ::
+                               Method "property_list_changed_notify" cls sig => cls -> sig
+property_list_changed_notify
+  = runMethod @"property_list_changed_notify"
+
+push_align :: Method "push_align" cls sig => cls -> sig
+push_align = runMethod @"push_align"
+
+push_cell :: Method "push_cell" cls sig => cls -> sig
+push_cell = runMethod @"push_cell"
+
+push_color :: Method "push_color" cls sig => cls -> sig
+push_color = runMethod @"push_color"
+
+push_font :: Method "push_font" cls sig => cls -> sig
+push_font = runMethod @"push_font"
+
+push_indent :: Method "push_indent" cls sig => cls -> sig
+push_indent = runMethod @"push_indent"
+
+push_list :: Method "push_list" cls sig => cls -> sig
+push_list = runMethod @"push_list"
+
+push_meta :: Method "push_meta" cls sig => cls -> sig
+push_meta = runMethod @"push_meta"
+
+push_strikethrough ::
+                     Method "push_strikethrough" cls sig => cls -> sig
+push_strikethrough = runMethod @"push_strikethrough"
+
+push_table :: Method "push_table" cls sig => cls -> sig
+push_table = runMethod @"push_table"
+
+push_underline :: Method "push_underline" cls sig => cls -> sig
+push_underline = runMethod @"push_underline"
+
+put_16 :: Method "put_16" cls sig => cls -> sig
+put_16 = runMethod @"put_16"
+
+put_32 :: Method "put_32" cls sig => cls -> sig
+put_32 = runMethod @"put_32"
+
+put_64 :: Method "put_64" cls sig => cls -> sig
+put_64 = runMethod @"put_64"
+
+put_8 :: Method "put_8" cls sig => cls -> sig
+put_8 = runMethod @"put_8"
+
+put_data :: Method "put_data" cls sig => cls -> sig
+put_data = runMethod @"put_data"
+
+put_double :: Method "put_double" cls sig => cls -> sig
+put_double = runMethod @"put_double"
+
+put_float :: Method "put_float" cls sig => cls -> sig
+put_float = runMethod @"put_float"
+
+put_packet :: Method "put_packet" cls sig => cls -> sig
+put_packet = runMethod @"put_packet"
+
+put_partial_data :: Method "put_partial_data" cls sig => cls -> sig
+put_partial_data = runMethod @"put_partial_data"
+
+put_string :: Method "put_string" cls sig => cls -> sig
+put_string = runMethod @"put_string"
+
+put_u16 :: Method "put_u16" cls sig => cls -> sig
+put_u16 = runMethod @"put_u16"
+
+put_u32 :: Method "put_u32" cls sig => cls -> sig
+put_u32 = runMethod @"put_u32"
+
+put_u64 :: Method "put_u64" cls sig => cls -> sig
+put_u64 = runMethod @"put_u64"
+
+put_u8 :: Method "put_u8" cls sig => cls -> sig
+put_u8 = runMethod @"put_u8"
+
+put_utf8_string :: Method "put_utf8_string" cls sig => cls -> sig
+put_utf8_string = runMethod @"put_utf8_string"
+
+put_var :: Method "put_var" cls sig => cls -> sig
+put_var = runMethod @"put_var"
+
+query_external_address ::
+                         Method "query_external_address" cls sig => cls -> sig
+query_external_address = runMethod @"query_external_address"
+
+query_string_from_dict ::
+                         Method "query_string_from_dict" cls sig => cls -> sig
+query_string_from_dict = runMethod @"query_string_from_dict"
+
+queue :: Method "queue" cls sig => cls -> sig
+queue = runMethod @"queue"
+
+queue_delete :: Method "queue_delete" cls sig => cls -> sig
+queue_delete = runMethod @"queue_delete"
+
+queue_edited_resource_preview ::
+                                Method "queue_edited_resource_preview" cls sig => cls -> sig
+queue_edited_resource_preview
+  = runMethod @"queue_edited_resource_preview"
+
+queue_free :: Method "queue_free" cls sig => cls -> sig
+queue_free = runMethod @"queue_free"
+
+queue_resource_preview ::
+                         Method "queue_resource_preview" cls sig => cls -> sig
+queue_resource_preview = runMethod @"queue_resource_preview"
+
+queue_save_layout ::
+                    Method "queue_save_layout" cls sig => cls -> sig
+queue_save_layout = runMethod @"queue_save_layout"
+
+queue_sort :: Method "queue_sort" cls sig => cls -> sig
+queue_sort = runMethod @"queue_sort"
+
+quit :: Method "quit" cls sig => cls -> sig
+quit = runMethod @"quit"
+
+raise :: Method "raise" cls sig => cls -> sig
+raise = runMethod @"raise"
+
+raw_to_base64 :: Method "raw_to_base64" cls sig => cls -> sig
+raw_to_base64 = runMethod @"raw_to_base64"
+
+ray_intersects_triangle ::
+                          Method "ray_intersects_triangle" cls sig => cls -> sig
+ray_intersects_triangle = runMethod @"ray_intersects_triangle"
+
+ray_shape_create :: Method "ray_shape_create" cls sig => cls -> sig
+ray_shape_create = runMethod @"ray_shape_create"
+
+read :: Method "read" cls sig => cls -> sig
+read = runMethod @"read"
+
+read_response_body_chunk ::
+                           Method "read_response_body_chunk" cls sig => cls -> sig
+read_response_body_chunk = runMethod @"read_response_body_chunk"
+
+recompute_caches :: Method "recompute_caches" cls sig => cls -> sig
+recompute_caches = runMethod @"recompute_caches"
+
+rectangle_shape_create ::
+                         Method "rectangle_shape_create" cls sig => cls -> sig
+rectangle_shape_create = runMethod @"rectangle_shape_create"
+
+redo :: Method "redo" cls sig => cls -> sig
+redo = runMethod @"redo"
+
+redraw :: Method "redraw" cls sig => cls -> sig
+redraw = runMethod @"redraw"
+
+reference :: Method "reference" cls sig => cls -> sig
+reference = runMethod @"reference"
+
+reflection_probe_create ::
+                          Method "reflection_probe_create" cls sig => cls -> sig
+reflection_probe_create = runMethod @"reflection_probe_create"
+
+reflection_probe_set_as_interior ::
+                                   Method "reflection_probe_set_as_interior" cls sig => cls -> sig
+reflection_probe_set_as_interior
+  = runMethod @"reflection_probe_set_as_interior"
+
+reflection_probe_set_cull_mask ::
+                                 Method "reflection_probe_set_cull_mask" cls sig => cls -> sig
+reflection_probe_set_cull_mask
+  = runMethod @"reflection_probe_set_cull_mask"
+
+reflection_probe_set_enable_box_projection ::
+                                             Method "reflection_probe_set_enable_box_projection" cls
+                                               sig =>
+                                             cls -> sig
+reflection_probe_set_enable_box_projection
+  = runMethod @"reflection_probe_set_enable_box_projection"
+
+reflection_probe_set_enable_shadows ::
+                                      Method "reflection_probe_set_enable_shadows" cls sig =>
+                                      cls -> sig
+reflection_probe_set_enable_shadows
+  = runMethod @"reflection_probe_set_enable_shadows"
+
+reflection_probe_set_extents ::
+                               Method "reflection_probe_set_extents" cls sig => cls -> sig
+reflection_probe_set_extents
+  = runMethod @"reflection_probe_set_extents"
+
+reflection_probe_set_intensity ::
+                                 Method "reflection_probe_set_intensity" cls sig => cls -> sig
+reflection_probe_set_intensity
+  = runMethod @"reflection_probe_set_intensity"
+
+reflection_probe_set_interior_ambient ::
+                                        Method "reflection_probe_set_interior_ambient" cls sig =>
+                                        cls -> sig
+reflection_probe_set_interior_ambient
+  = runMethod @"reflection_probe_set_interior_ambient"
+
+reflection_probe_set_interior_ambient_energy ::
+                                               Method "reflection_probe_set_interior_ambient_energy"
+                                                 cls sig =>
+                                               cls -> sig
+reflection_probe_set_interior_ambient_energy
+  = runMethod @"reflection_probe_set_interior_ambient_energy"
+
+reflection_probe_set_interior_ambient_probe_contribution ::
+                                                           Method
+                                                             "reflection_probe_set_interior_ambient_probe_contribution"
+                                                             cls sig =>
+                                                           cls -> sig
+reflection_probe_set_interior_ambient_probe_contribution
+  = runMethod
+      @"reflection_probe_set_interior_ambient_probe_contribution"
+
+reflection_probe_set_max_distance ::
+                                    Method "reflection_probe_set_max_distance" cls sig => cls -> sig
+reflection_probe_set_max_distance
+  = runMethod @"reflection_probe_set_max_distance"
+
+reflection_probe_set_origin_offset ::
+                                     Method "reflection_probe_set_origin_offset" cls sig =>
+                                     cls -> sig
+reflection_probe_set_origin_offset
+  = runMethod @"reflection_probe_set_origin_offset"
+
+reflection_probe_set_update_mode ::
+                                   Method "reflection_probe_set_update_mode" cls sig => cls -> sig
+reflection_probe_set_update_mode
+  = runMethod @"reflection_probe_set_update_mode"
+
+refresh :: Method "refresh" cls sig => cls -> sig
+refresh = runMethod @"refresh"
+
+regen_normalmaps :: Method "regen_normalmaps" cls sig => cls -> sig
+regen_normalmaps = runMethod @"regen_normalmaps"
+
+register_text_enter ::
+                      Method "register_text_enter" cls sig => cls -> sig
+register_text_enter = runMethod @"register_text_enter"
+
+release_focus :: Method "release_focus" cls sig => cls -> sig
+release_focus = runMethod @"release_focus"
+
+reload :: Method "reload" cls sig => cls -> sig
+reload = runMethod @"reload"
+
+reload_current_scene ::
+                       Method "reload_current_scene" cls sig => cls -> sig
+reload_current_scene = runMethod @"reload_current_scene"
+
+reload_scene_from_path ::
+                         Method "reload_scene_from_path" cls sig => cls -> sig
+reload_scene_from_path = runMethod @"reload_scene_from_path"
+
+remove :: Method "remove" cls sig => cls -> sig
+remove = runMethod @"remove"
+
+remove_all :: Method "remove_all" cls sig => cls -> sig
+remove_all = runMethod @"remove_all"
+
+remove_and_skip :: Method "remove_and_skip" cls sig => cls -> sig
+remove_and_skip = runMethod @"remove_and_skip"
+
+remove_animation :: Method "remove_animation" cls sig => cls -> sig
+remove_animation = runMethod @"remove_animation"
+
+remove_autoload_singleton ::
+                            Method "remove_autoload_singleton" cls sig => cls -> sig
+remove_autoload_singleton = runMethod @"remove_autoload_singleton"
+
+remove_blend_point ::
+                     Method "remove_blend_point" cls sig => cls -> sig
+remove_blend_point = runMethod @"remove_blend_point"
+
+remove_breakpoints ::
+                     Method "remove_breakpoints" cls sig => cls -> sig
+remove_breakpoints = runMethod @"remove_breakpoints"
+
+remove_bus :: Method "remove_bus" cls sig => cls -> sig
+remove_bus = runMethod @"remove_bus"
+
+remove_bus_effect ::
+                    Method "remove_bus_effect" cls sig => cls -> sig
+remove_bus_effect = runMethod @"remove_bus_effect"
+
+remove_child :: Method "remove_child" cls sig => cls -> sig
+remove_child = runMethod @"remove_child"
+
+remove_collision_exception_with ::
+                                  Method "remove_collision_exception_with" cls sig => cls -> sig
+remove_collision_exception_with
+  = runMethod @"remove_collision_exception_with"
+
+remove_control_from_bottom_panel ::
+                                   Method "remove_control_from_bottom_panel" cls sig => cls -> sig
+remove_control_from_bottom_panel
+  = runMethod @"remove_control_from_bottom_panel"
+
+remove_control_from_container ::
+                                Method "remove_control_from_container" cls sig => cls -> sig
+remove_control_from_container
+  = runMethod @"remove_control_from_container"
+
+remove_control_from_docks ::
+                            Method "remove_control_from_docks" cls sig => cls -> sig
+remove_control_from_docks = runMethod @"remove_control_from_docks"
+
+remove_custom_node ::
+                     Method "remove_custom_node" cls sig => cls -> sig
+remove_custom_node = runMethod @"remove_custom_node"
+
+remove_custom_signal ::
+                       Method "remove_custom_signal" cls sig => cls -> sig
+remove_custom_signal = runMethod @"remove_custom_signal"
+
+remove_custom_type ::
+                     Method "remove_custom_type" cls sig => cls -> sig
+remove_custom_type = runMethod @"remove_custom_type"
+
+remove_device :: Method "remove_device" cls sig => cls -> sig
+remove_device = runMethod @"remove_device"
+
+remove_exception :: Method "remove_exception" cls sig => cls -> sig
+remove_exception = runMethod @"remove_exception"
+
+remove_exception_rid ::
+                       Method "remove_exception_rid" cls sig => cls -> sig
+remove_exception_rid = runMethod @"remove_exception_rid"
+
+remove_excluded_object ::
+                         Method "remove_excluded_object" cls sig => cls -> sig
+remove_excluded_object = runMethod @"remove_excluded_object"
+
+remove_export_plugin ::
+                       Method "remove_export_plugin" cls sig => cls -> sig
+remove_export_plugin = runMethod @"remove_export_plugin"
+
+remove_fallback :: Method "remove_fallback" cls sig => cls -> sig
+remove_fallback = runMethod @"remove_fallback"
+
+remove_frame :: Method "remove_frame" cls sig => cls -> sig
+remove_frame = runMethod @"remove_frame"
+
+remove_from_group ::
+                    Method "remove_from_group" cls sig => cls -> sig
+remove_from_group = runMethod @"remove_from_group"
+
+remove_function :: Method "remove_function" cls sig => cls -> sig
+remove_function = runMethod @"remove_function"
+
+remove_import_plugin ::
+                       Method "remove_import_plugin" cls sig => cls -> sig
+remove_import_plugin = runMethod @"remove_import_plugin"
+
+remove_input :: Method "remove_input" cls sig => cls -> sig
+remove_input = runMethod @"remove_input"
+
+remove_inspector_plugin ::
+                          Method "remove_inspector_plugin" cls sig => cls -> sig
+remove_inspector_plugin = runMethod @"remove_inspector_plugin"
+
+remove_item :: Method "remove_item" cls sig => cls -> sig
+remove_item = runMethod @"remove_item"
+
+remove_joy_mapping ::
+                     Method "remove_joy_mapping" cls sig => cls -> sig
+remove_joy_mapping = runMethod @"remove_joy_mapping"
+
+remove_line :: Method "remove_line" cls sig => cls -> sig
+remove_line = runMethod @"remove_line"
+
+remove_node :: Method "remove_node" cls sig => cls -> sig
+remove_node = runMethod @"remove_node"
+
+remove_outline :: Method "remove_outline" cls sig => cls -> sig
+remove_outline = runMethod @"remove_outline"
+
+remove_point :: Method "remove_point" cls sig => cls -> sig
+remove_point = runMethod @"remove_point"
+
+remove_preview_generator ::
+                           Method "remove_preview_generator" cls sig => cls -> sig
+remove_preview_generator = runMethod @"remove_preview_generator"
+
+remove_resource :: Method "remove_resource" cls sig => cls -> sig
+remove_resource = runMethod @"remove_resource"
+
+remove_scene_import_plugin ::
+                             Method "remove_scene_import_plugin" cls sig => cls -> sig
+remove_scene_import_plugin
+  = runMethod @"remove_scene_import_plugin"
+
+remove_shape_owner ::
+                     Method "remove_shape_owner" cls sig => cls -> sig
+remove_shape_owner = runMethod @"remove_shape_owner"
+
+remove_tab :: Method "remove_tab" cls sig => cls -> sig
+remove_tab = runMethod @"remove_tab"
+
+remove_tile :: Method "remove_tile" cls sig => cls -> sig
+remove_tile = runMethod @"remove_tile"
+
+remove_tool_menu_item ::
+                        Method "remove_tool_menu_item" cls sig => cls -> sig
+remove_tool_menu_item = runMethod @"remove_tool_menu_item"
+
+remove_track :: Method "remove_track" cls sig => cls -> sig
+remove_track = runMethod @"remove_track"
+
+remove_transition ::
+                    Method "remove_transition" cls sig => cls -> sig
+remove_transition = runMethod @"remove_transition"
+
+remove_transition_by_index ::
+                             Method "remove_transition_by_index" cls sig => cls -> sig
+remove_transition_by_index
+  = runMethod @"remove_transition_by_index"
+
+remove_translation ::
+                     Method "remove_translation" cls sig => cls -> sig
+remove_translation = runMethod @"remove_translation"
+
+remove_triangle :: Method "remove_triangle" cls sig => cls -> sig
+remove_triangle = runMethod @"remove_triangle"
+
+remove_valid_connection_type ::
+                               Method "remove_valid_connection_type" cls sig => cls -> sig
+remove_valid_connection_type
+  = runMethod @"remove_valid_connection_type"
+
+remove_valid_left_disconnect_type ::
+                                    Method "remove_valid_left_disconnect_type" cls sig => cls -> sig
+remove_valid_left_disconnect_type
+  = runMethod @"remove_valid_left_disconnect_type"
+
+remove_valid_right_disconnect_type ::
+                                     Method "remove_valid_right_disconnect_type" cls sig =>
+                                     cls -> sig
+remove_valid_right_disconnect_type
+  = runMethod @"remove_valid_right_disconnect_type"
+
+remove_variable :: Method "remove_variable" cls sig => cls -> sig
+remove_variable = runMethod @"remove_variable"
+
+rename :: Method "rename" cls sig => cls -> sig
+rename = runMethod @"rename"
+
+rename_animation :: Method "rename_animation" cls sig => cls -> sig
+rename_animation = runMethod @"rename_animation"
+
+rename_custom_signal ::
+                       Method "rename_custom_signal" cls sig => cls -> sig
+rename_custom_signal = runMethod @"rename_custom_signal"
+
+rename_function :: Method "rename_function" cls sig => cls -> sig
+rename_function = runMethod @"rename_function"
+
+rename_node :: Method "rename_node" cls sig => cls -> sig
+rename_node = runMethod @"rename_node"
+
+rename_parameter :: Method "rename_parameter" cls sig => cls -> sig
+rename_parameter = runMethod @"rename_parameter"
+
+rename_resource :: Method "rename_resource" cls sig => cls -> sig
+rename_resource = runMethod @"rename_resource"
+
+rename_variable :: Method "rename_variable" cls sig => cls -> sig
+rename_variable = runMethod @"rename_variable"
+
+replace_by :: Method "replace_by" cls sig => cls -> sig
+replace_by = runMethod @"replace_by"
+
+replace_by_instance ::
+                      Method "replace_by_instance" cls sig => cls -> sig
+replace_by_instance = runMethod @"replace_by_instance"
+
+request :: Method "request" cls sig => cls -> sig
+request = runMethod @"request"
+
+request_attention ::
+                    Method "request_attention" cls sig => cls -> sig
+request_attention = runMethod @"request_attention"
+
+request_frame_drawn_callback ::
+                               Method "request_frame_drawn_callback" cls sig => cls -> sig
+request_frame_drawn_callback
+  = runMethod @"request_frame_drawn_callback"
+
+request_raw :: Method "request_raw" cls sig => cls -> sig
+request_raw = runMethod @"request_raw"
+
+request_ready :: Method "request_ready" cls sig => cls -> sig
+request_ready = runMethod @"request_ready"
+
+reset :: Method "reset" cls sig => cls -> sig
+reset = runMethod @"reset"
+
+reset_all :: Method "reset_all" cls sig => cls -> sig
+reset_all = runMethod @"reset_all"
+
+reset_smoothing :: Method "reset_smoothing" cls sig => cls -> sig
+reset_smoothing = runMethod @"reset_smoothing"
+
+resize :: Method "resize" cls sig => cls -> sig
+resize = runMethod @"resize"
+
+resize_to_po2 :: Method "resize_to_po2" cls sig => cls -> sig
+resize_to_po2 = runMethod @"resize_to_po2"
+
+resolve_hostname :: Method "resolve_hostname" cls sig => cls -> sig
+resolve_hostname = runMethod @"resolve_hostname"
+
+resolve_hostname_queue_item ::
+                              Method "resolve_hostname_queue_item" cls sig => cls -> sig
+resolve_hostname_queue_item
+  = runMethod @"resolve_hostname_queue_item"
+
+resource_changed :: Method "resource_changed" cls sig => cls -> sig
+resource_changed = runMethod @"resource_changed"
+
+restart :: Method "restart" cls sig => cls -> sig
+restart = runMethod @"restart"
+
+resume :: Method "resume" cls sig => cls -> sig
+resume = runMethod @"resume"
+
+resume_all :: Method "resume_all" cls sig => cls -> sig
+resume_all = runMethod @"resume_all"
+
+rgbe_to_srgb :: Method "rgbe_to_srgb" cls sig => cls -> sig
+rgbe_to_srgb = runMethod @"rgbe_to_srgb"
+
+rotate :: Method "rotate" cls sig => cls -> sig
+rotate = runMethod @"rotate"
+
+rotate_object_local ::
+                      Method "rotate_object_local" cls sig => cls -> sig
+rotate_object_local = runMethod @"rotate_object_local"
+
+rotate_x :: Method "rotate_x" cls sig => cls -> sig
+rotate_x = runMethod @"rotate_x"
+
+rotate_y :: Method "rotate_y" cls sig => cls -> sig
+rotate_y = runMethod @"rotate_y"
+
+rotate_z :: Method "rotate_z" cls sig => cls -> sig
+rotate_z = runMethod @"rotate_z"
+
+rpc :: Method "rpc" cls sig => cls -> sig
+rpc = runMethod @"rpc"
+
+rpc_config :: Method "rpc_config" cls sig => cls -> sig
+rpc_config = runMethod @"rpc_config"
+
+rpc_id :: Method "rpc_id" cls sig => cls -> sig
+rpc_id = runMethod @"rpc_id"
+
+rpc_unreliable :: Method "rpc_unreliable" cls sig => cls -> sig
+rpc_unreliable = runMethod @"rpc_unreliable"
+
+rpc_unreliable_id ::
+                    Method "rpc_unreliable_id" cls sig => cls -> sig
+rpc_unreliable_id = runMethod @"rpc_unreliable_id"
+
+rset :: Method "rset" cls sig => cls -> sig
+rset = runMethod @"rset"
+
+rset_config :: Method "rset_config" cls sig => cls -> sig
+rset_config = runMethod @"rset_config"
+
+rset_id :: Method "rset_id" cls sig => cls -> sig
+rset_id = runMethod @"rset_id"
+
+rset_unreliable :: Method "rset_unreliable" cls sig => cls -> sig
+rset_unreliable = runMethod @"rset_unreliable"
+
+rset_unreliable_id ::
+                     Method "rset_unreliable_id" cls sig => cls -> sig
+rset_unreliable_id = runMethod @"rset_unreliable_id"
+
+save :: Method "save" cls sig => cls -> sig
+save = runMethod @"save"
+
+save_custom :: Method "save_custom" cls sig => cls -> sig
+save_custom = runMethod @"save_custom"
+
+save_external_data ::
+                     Method "save_external_data" cls sig => cls -> sig
+save_external_data = runMethod @"save_external_data"
+
+save_png :: Method "save_png" cls sig => cls -> sig
+save_png = runMethod @"save_png"
+
+save_scene :: Method "save_scene" cls sig => cls -> sig
+save_scene = runMethod @"save_scene"
+
+save_scene_as :: Method "save_scene_as" cls sig => cls -> sig
+save_scene_as = runMethod @"save_scene_as"
+
+save_to_wav :: Method "save_to_wav" cls sig => cls -> sig
+save_to_wav = runMethod @"save_to_wav"
+
+scale_object_local ::
+                     Method "scale_object_local" cls sig => cls -> sig
+scale_object_local = runMethod @"scale_object_local"
+
+scan :: Method "scan" cls sig => cls -> sig
+scan = runMethod @"scan"
+
+scan_sources :: Method "scan_sources" cls sig => cls -> sig
+scan_sources = runMethod @"scan_sources"
+
+scenario_create :: Method "scenario_create" cls sig => cls -> sig
+scenario_create = runMethod @"scenario_create"
+
+scenario_set_debug ::
+                     Method "scenario_set_debug" cls sig => cls -> sig
+scenario_set_debug = runMethod @"scenario_set_debug"
+
+scenario_set_environment ::
+                           Method "scenario_set_environment" cls sig => cls -> sig
+scenario_set_environment = runMethod @"scenario_set_environment"
+
+scenario_set_fallback_environment ::
+                                    Method "scenario_set_fallback_environment" cls sig => cls -> sig
+scenario_set_fallback_environment
+  = runMethod @"scenario_set_fallback_environment"
+
+scenario_set_reflection_atlas_size ::
+                                     Method "scenario_set_reflection_atlas_size" cls sig =>
+                                     cls -> sig
+scenario_set_reflection_atlas_size
+  = runMethod @"scenario_set_reflection_atlas_size"
+
+scroll_to_line :: Method "scroll_to_line" cls sig => cls -> sig
+scroll_to_line = runMethod @"scroll_to_line"
+
+search :: Method "search" cls sig => cls -> sig
+search = runMethod @"search"
+
+search_all :: Method "search_all" cls sig => cls -> sig
+search_all = runMethod @"search_all"
+
+seek :: Method "seek" cls sig => cls -> sig
+seek = runMethod @"seek"
+
+seek_end :: Method "seek_end" cls sig => cls -> sig
+seek_end = runMethod @"seek_end"
+
+segment_intersects_circle ::
+                            Method "segment_intersects_circle" cls sig => cls -> sig
+segment_intersects_circle = runMethod @"segment_intersects_circle"
+
+segment_intersects_convex ::
+                            Method "segment_intersects_convex" cls sig => cls -> sig
+segment_intersects_convex = runMethod @"segment_intersects_convex"
+
+segment_intersects_cylinder ::
+                              Method "segment_intersects_cylinder" cls sig => cls -> sig
+segment_intersects_cylinder
+  = runMethod @"segment_intersects_cylinder"
+
+segment_intersects_segment_2d ::
+                                Method "segment_intersects_segment_2d" cls sig => cls -> sig
+segment_intersects_segment_2d
+  = runMethod @"segment_intersects_segment_2d"
+
+segment_intersects_sphere ::
+                            Method "segment_intersects_sphere" cls sig => cls -> sig
+segment_intersects_sphere = runMethod @"segment_intersects_sphere"
+
+segment_intersects_triangle ::
+                              Method "segment_intersects_triangle" cls sig => cls -> sig
+segment_intersects_triangle
+  = runMethod @"segment_intersects_triangle"
+
+segment_shape_create ::
+                       Method "segment_shape_create" cls sig => cls -> sig
+segment_shape_create = runMethod @"segment_shape_create"
+
+select :: Method "select" cls sig => cls -> sig
+select = runMethod @"select"
+
+select_all :: Method "select_all" cls sig => cls -> sig
+select_all = runMethod @"select_all"
+
+select_file :: Method "select_file" cls sig => cls -> sig
+select_file = runMethod @"select_file"
+
+send_bytes :: Method "send_bytes" cls sig => cls -> sig
+send_bytes = runMethod @"send_bytes"
+
+sequence_connect :: Method "sequence_connect" cls sig => cls -> sig
+sequence_connect = runMethod @"sequence_connect"
+
+sequence_disconnect ::
+                      Method "sequence_disconnect" cls sig => cls -> sig
+sequence_disconnect = runMethod @"sequence_disconnect"
+
+set :: Method "set" cls sig => cls -> sig
+set = runMethod @"set"
+
+set_a :: Method "set_a" cls sig => cls -> sig
+set_a = runMethod @"set_a"
+
+set_aa_size :: Method "set_aa_size" cls sig => cls -> sig
+set_aa_size = runMethod @"set_aa_size"
+
+set_aabb :: Method "set_aabb" cls sig => cls -> sig
+set_aabb = runMethod @"set_aabb"
+
+set_abort_on_missing_resources ::
+                                 Method "set_abort_on_missing_resources" cls sig => cls -> sig
+set_abort_on_missing_resources
+  = runMethod @"set_abort_on_missing_resources"
+
+set_absorbent :: Method "set_absorbent" cls sig => cls -> sig
+set_absorbent = runMethod @"set_absorbent"
+
+set_access :: Method "set_access" cls sig => cls -> sig
+set_access = runMethod @"set_access"
+
+set_action :: Method "set_action" cls sig => cls -> sig
+set_action = runMethod @"set_action"
+
+set_action_mode :: Method "set_action_mode" cls sig => cls -> sig
+set_action_mode = runMethod @"set_action_mode"
+
+set_action_name :: Method "set_action_name" cls sig => cls -> sig
+set_action_name = runMethod @"set_action_name"
+
+set_active :: Method "set_active" cls sig => cls -> sig
+set_active = runMethod @"set_active"
+
+set_adjustment_brightness ::
+                            Method "set_adjustment_brightness" cls sig => cls -> sig
+set_adjustment_brightness = runMethod @"set_adjustment_brightness"
+
+set_adjustment_color_correction ::
+                                  Method "set_adjustment_color_correction" cls sig => cls -> sig
+set_adjustment_color_correction
+  = runMethod @"set_adjustment_color_correction"
+
+set_adjustment_contrast ::
+                          Method "set_adjustment_contrast" cls sig => cls -> sig
+set_adjustment_contrast = runMethod @"set_adjustment_contrast"
+
+set_adjustment_enable ::
+                        Method "set_adjustment_enable" cls sig => cls -> sig
+set_adjustment_enable = runMethod @"set_adjustment_enable"
+
+set_adjustment_saturation ::
+                            Method "set_adjustment_saturation" cls sig => cls -> sig
+set_adjustment_saturation = runMethod @"set_adjustment_saturation"
+
+set_advance_condition ::
+                        Method "set_advance_condition" cls sig => cls -> sig
+set_advance_condition = runMethod @"set_advance_condition"
+
+set_agent_height :: Method "set_agent_height" cls sig => cls -> sig
+set_agent_height = runMethod @"set_agent_height"
+
+set_agent_max_climb ::
+                      Method "set_agent_max_climb" cls sig => cls -> sig
+set_agent_max_climb = runMethod @"set_agent_max_climb"
+
+set_agent_max_slope ::
+                      Method "set_agent_max_slope" cls sig => cls -> sig
+set_agent_max_slope = runMethod @"set_agent_max_slope"
+
+set_agent_radius :: Method "set_agent_radius" cls sig => cls -> sig
+set_agent_radius = runMethod @"set_agent_radius"
+
+set_albedo :: Method "set_albedo" cls sig => cls -> sig
+set_albedo = runMethod @"set_albedo"
+
+set_align :: Method "set_align" cls sig => cls -> sig
+set_align = runMethod @"set_align"
+
+set_alignment :: Method "set_alignment" cls sig => cls -> sig
+set_alignment = runMethod @"set_alignment"
+
+set_allow_greater ::
+                    Method "set_allow_greater" cls sig => cls -> sig
+set_allow_greater = runMethod @"set_allow_greater"
+
+set_allow_lesser :: Method "set_allow_lesser" cls sig => cls -> sig
+set_allow_lesser = runMethod @"set_allow_lesser"
+
+set_allow_object_decoding ::
+                            Method "set_allow_object_decoding" cls sig => cls -> sig
+set_allow_object_decoding = runMethod @"set_allow_object_decoding"
+
+set_allow_reselect ::
+                     Method "set_allow_reselect" cls sig => cls -> sig
+set_allow_reselect = runMethod @"set_allow_reselect"
+
+set_allow_rmb_select ::
+                       Method "set_allow_rmb_select" cls sig => cls -> sig
+set_allow_rmb_select = runMethod @"set_allow_rmb_select"
+
+set_alpha_cut_mode ::
+                     Method "set_alpha_cut_mode" cls sig => cls -> sig
+set_alpha_cut_mode = runMethod @"set_alpha_cut_mode"
+
+set_alpha_scissor_threshold ::
+                              Method "set_alpha_scissor_threshold" cls sig => cls -> sig
+set_alpha_scissor_threshold
+  = runMethod @"set_alpha_scissor_threshold"
+
+set_alt :: Method "set_alt" cls sig => cls -> sig
+set_alt = runMethod @"set_alt"
+
+set_always_ordered ::
+                     Method "set_always_ordered" cls sig => cls -> sig
+set_always_ordered = runMethod @"set_always_ordered"
+
+set_ambient_light_color ::
+                          Method "set_ambient_light_color" cls sig => cls -> sig
+set_ambient_light_color = runMethod @"set_ambient_light_color"
+
+set_ambient_light_energy ::
+                           Method "set_ambient_light_energy" cls sig => cls -> sig
+set_ambient_light_energy = runMethod @"set_ambient_light_energy"
+
+set_ambient_light_sky_contribution ::
+                                     Method "set_ambient_light_sky_contribution" cls sig =>
+                                     cls -> sig
+set_ambient_light_sky_contribution
+  = runMethod @"set_ambient_light_sky_contribution"
+
+set_amount :: Method "set_amount" cls sig => cls -> sig
+set_amount = runMethod @"set_amount"
+
+set_anchor :: Method "set_anchor" cls sig => cls -> sig
+set_anchor = runMethod @"set_anchor"
+
+set_anchor_and_margin ::
+                        Method "set_anchor_and_margin" cls sig => cls -> sig
+set_anchor_and_margin = runMethod @"set_anchor_and_margin"
+
+set_anchor_detection_is_enabled ::
+                                  Method "set_anchor_detection_is_enabled" cls sig => cls -> sig
+set_anchor_detection_is_enabled
+  = runMethod @"set_anchor_detection_is_enabled"
+
+set_anchor_id :: Method "set_anchor_id" cls sig => cls -> sig
+set_anchor_id = runMethod @"set_anchor_id"
+
+set_anchor_mode :: Method "set_anchor_mode" cls sig => cls -> sig
+set_anchor_mode = runMethod @"set_anchor_mode"
+
+set_anchors_and_margins_preset ::
+                                 Method "set_anchors_and_margins_preset" cls sig => cls -> sig
+set_anchors_and_margins_preset
+  = runMethod @"set_anchors_and_margins_preset"
+
+set_anchors_preset ::
+                     Method "set_anchors_preset" cls sig => cls -> sig
+set_anchors_preset = runMethod @"set_anchors_preset"
+
+set_angular_damp :: Method "set_angular_damp" cls sig => cls -> sig
+set_angular_damp = runMethod @"set_angular_damp"
+
+set_angular_velocity ::
+                       Method "set_angular_velocity" cls sig => cls -> sig
+set_angular_velocity = runMethod @"set_angular_velocity"
+
+set_animation :: Method "set_animation" cls sig => cls -> sig
+set_animation = runMethod @"set_animation"
+
+set_animation_loop ::
+                     Method "set_animation_loop" cls sig => cls -> sig
+set_animation_loop = runMethod @"set_animation_loop"
+
+set_animation_path ::
+                     Method "set_animation_path" cls sig => cls -> sig
+set_animation_path = runMethod @"set_animation_path"
+
+set_animation_player ::
+                       Method "set_animation_player" cls sig => cls -> sig
+set_animation_player = runMethod @"set_animation_player"
+
+set_animation_process_mode ::
+                             Method "set_animation_process_mode" cls sig => cls -> sig
+set_animation_process_mode
+  = runMethod @"set_animation_process_mode"
+
+set_animation_speed ::
+                      Method "set_animation_speed" cls sig => cls -> sig
+set_animation_speed = runMethod @"set_animation_speed"
+
+set_anisotropy :: Method "set_anisotropy" cls sig => cls -> sig
+set_anisotropy = runMethod @"set_anisotropy"
+
+set_anti_aliased :: Method "set_anti_aliased" cls sig => cls -> sig
+set_anti_aliased = runMethod @"set_anti_aliased"
+
+set_antialiased :: Method "set_antialiased" cls sig => cls -> sig
+set_antialiased = runMethod @"set_antialiased"
+
+set_ao_light_affect ::
+                      Method "set_ao_light_affect" cls sig => cls -> sig
+set_ao_light_affect = runMethod @"set_ao_light_affect"
+
+set_ao_texture_channel ::
+                         Method "set_ao_texture_channel" cls sig => cls -> sig
+set_ao_texture_channel = runMethod @"set_ao_texture_channel"
+
+set_applied_force ::
+                    Method "set_applied_force" cls sig => cls -> sig
+set_applied_force = runMethod @"set_applied_force"
+
+set_applied_torque ::
+                     Method "set_applied_torque" cls sig => cls -> sig
+set_applied_torque = runMethod @"set_applied_torque"
+
+set_areaAngular_stiffness ::
+                            Method "set_areaAngular_stiffness" cls sig => cls -> sig
+set_areaAngular_stiffness = runMethod @"set_areaAngular_stiffness"
+
+set_area_mask :: Method "set_area_mask" cls sig => cls -> sig
+set_area_mask = runMethod @"set_area_mask"
+
+set_as_audio_listener ::
+                        Method "set_as_audio_listener" cls sig => cls -> sig
+set_as_audio_listener = runMethod @"set_as_audio_listener"
+
+set_as_audio_listener_2d ::
+                           Method "set_as_audio_listener_2d" cls sig => cls -> sig
+set_as_audio_listener_2d = runMethod @"set_as_audio_listener_2d"
+
+set_as_interior :: Method "set_as_interior" cls sig => cls -> sig
+set_as_interior = runMethod @"set_as_interior"
+
+set_as_normalmap :: Method "set_as_normalmap" cls sig => cls -> sig
+set_as_normalmap = runMethod @"set_as_normalmap"
+
+set_as_ratio :: Method "set_as_ratio" cls sig => cls -> sig
+set_as_ratio = runMethod @"set_as_ratio"
+
+set_as_toplevel :: Method "set_as_toplevel" cls sig => cls -> sig
+set_as_toplevel = runMethod @"set_as_toplevel"
+
+set_ascent :: Method "set_ascent" cls sig => cls -> sig
+set_ascent = runMethod @"set_ascent"
+
+set_assign_op :: Method "set_assign_op" cls sig => cls -> sig
+set_assign_op = runMethod @"set_assign_op"
+
+set_assigned_animation ::
+                         Method "set_assigned_animation" cls sig => cls -> sig
+set_assigned_animation = runMethod @"set_assigned_animation"
+
+set_atlas :: Method "set_atlas" cls sig => cls -> sig
+set_atlas = runMethod @"set_atlas"
+
+set_attach_to_screen_rect ::
+                            Method "set_attach_to_screen_rect" cls sig => cls -> sig
+set_attach_to_screen_rect = runMethod @"set_attach_to_screen_rect"
+
+set_attack_us :: Method "set_attack_us" cls sig => cls -> sig
+set_attack_us = runMethod @"set_attack_us"
+
+set_attenuation :: Method "set_attenuation" cls sig => cls -> sig
+set_attenuation = runMethod @"set_attenuation"
+
+set_attenuation_filter_cutoff_hz ::
+                                   Method "set_attenuation_filter_cutoff_hz" cls sig => cls -> sig
+set_attenuation_filter_cutoff_hz
+  = runMethod @"set_attenuation_filter_cutoff_hz"
+
+set_attenuation_filter_db ::
+                            Method "set_attenuation_filter_db" cls sig => cls -> sig
+set_attenuation_filter_db = runMethod @"set_attenuation_filter_db"
+
+set_attenuation_model ::
+                        Method "set_attenuation_model" cls sig => cls -> sig
+set_attenuation_model = runMethod @"set_attenuation_model"
+
+set_audio_bus :: Method "set_audio_bus" cls sig => cls -> sig
+set_audio_bus = runMethod @"set_audio_bus"
+
+set_audio_bus_name ::
+                     Method "set_audio_bus_name" cls sig => cls -> sig
+set_audio_bus_name = runMethod @"set_audio_bus_name"
+
+set_audio_bus_override ::
+                         Method "set_audio_bus_override" cls sig => cls -> sig
+set_audio_bus_override = runMethod @"set_audio_bus_override"
+
+set_audio_stream :: Method "set_audio_stream" cls sig => cls -> sig
+set_audio_stream = runMethod @"set_audio_stream"
+
+set_audio_track :: Method "set_audio_track" cls sig => cls -> sig
+set_audio_track = runMethod @"set_audio_track"
+
+set_auto_accept_quit ::
+                       Method "set_auto_accept_quit" cls sig => cls -> sig
+set_auto_accept_quit = runMethod @"set_auto_accept_quit"
+
+set_auto_advance :: Method "set_auto_advance" cls sig => cls -> sig
+set_auto_advance = runMethod @"set_auto_advance"
+
+set_auto_height :: Method "set_auto_height" cls sig => cls -> sig
+set_auto_height = runMethod @"set_auto_height"
+
+set_auto_triangles ::
+                     Method "set_auto_triangles" cls sig => cls -> sig
+set_auto_triangles = runMethod @"set_auto_triangles"
+
+set_autoplay :: Method "set_autoplay" cls sig => cls -> sig
+set_autoplay = runMethod @"set_autoplay"
+
+set_autorestart :: Method "set_autorestart" cls sig => cls -> sig
+set_autorestart = runMethod @"set_autorestart"
+
+set_autorestart_delay ::
+                        Method "set_autorestart_delay" cls sig => cls -> sig
+set_autorestart_delay = runMethod @"set_autorestart_delay"
+
+set_autorestart_random_delay ::
+                               Method "set_autorestart_random_delay" cls sig => cls -> sig
+set_autorestart_random_delay
+  = runMethod @"set_autorestart_random_delay"
+
+set_autostart :: Method "set_autostart" cls sig => cls -> sig
+set_autostart = runMethod @"set_autostart"
+
+set_autowrap :: Method "set_autowrap" cls sig => cls -> sig
+set_autowrap = runMethod @"set_autowrap"
+
+set_axis :: Method "set_axis" cls sig => cls -> sig
+set_axis = runMethod @"set_axis"
+
+set_axis_lock :: Method "set_axis_lock" cls sig => cls -> sig
+set_axis_lock = runMethod @"set_axis_lock"
+
+set_axis_value :: Method "set_axis_value" cls sig => cls -> sig
+set_axis_value = runMethod @"set_axis_value"
+
+set_axis_velocity ::
+                    Method "set_axis_velocity" cls sig => cls -> sig
+set_axis_velocity = runMethod @"set_axis_velocity"
+
+set_b :: Method "set_b" cls sig => cls -> sig
+set_b = runMethod @"set_b"
+
+set_background :: Method "set_background" cls sig => cls -> sig
+set_background = runMethod @"set_background"
+
+set_bake_cell_size ::
+                     Method "set_bake_cell_size" cls sig => cls -> sig
+set_bake_cell_size = runMethod @"set_bake_cell_size"
+
+set_bake_interval ::
+                    Method "set_bake_interval" cls sig => cls -> sig
+set_bake_interval = runMethod @"set_bake_interval"
+
+set_bake_mode :: Method "set_bake_mode" cls sig => cls -> sig
+set_bake_mode = runMethod @"set_bake_mode"
+
+set_bake_quality :: Method "set_bake_quality" cls sig => cls -> sig
+set_bake_quality = runMethod @"set_bake_quality"
+
+set_bake_resolution ::
+                      Method "set_bake_resolution" cls sig => cls -> sig
+set_bake_resolution = runMethod @"set_bake_resolution"
+
+set_band_gain_db :: Method "set_band_gain_db" cls sig => cls -> sig
+set_band_gain_db = runMethod @"set_band_gain_db"
+
+set_base :: Method "set_base" cls sig => cls -> sig
+set_base = runMethod @"set_base"
+
+set_base_path :: Method "set_base_path" cls sig => cls -> sig
+set_base_path = runMethod @"set_base_path"
+
+set_base_script :: Method "set_base_script" cls sig => cls -> sig
+set_base_script = runMethod @"set_base_script"
+
+set_base_type :: Method "set_base_type" cls sig => cls -> sig
+set_base_type = runMethod @"set_base_type"
+
+set_basic_type :: Method "set_basic_type" cls sig => cls -> sig
+set_basic_type = runMethod @"set_basic_type"
+
+set_basic_type_constant ::
+                          Method "set_basic_type_constant" cls sig => cls -> sig
+set_basic_type_constant = runMethod @"set_basic_type_constant"
+
+set_bbcode :: Method "set_bbcode" cls sig => cls -> sig
+set_bbcode = runMethod @"set_bbcode"
+
+set_begin :: Method "set_begin" cls sig => cls -> sig
+set_begin = runMethod @"set_begin"
+
+set_begin_cap_mode ::
+                     Method "set_begin_cap_mode" cls sig => cls -> sig
+set_begin_cap_mode = runMethod @"set_begin_cap_mode"
+
+set_bg_color :: Method "set_bg_color" cls sig => cls -> sig
+set_bg_color = runMethod @"set_bg_color"
+
+set_bg_energy :: Method "set_bg_energy" cls sig => cls -> sig
+set_bg_energy = runMethod @"set_bg_energy"
+
+set_bias :: Method "set_bias" cls sig => cls -> sig
+set_bias = runMethod @"set_bias"
+
+set_big_endian :: Method "set_big_endian" cls sig => cls -> sig
+set_big_endian = runMethod @"set_big_endian"
+
+set_billboard_mode ::
+                     Method "set_billboard_mode" cls sig => cls -> sig
+set_billboard_mode = runMethod @"set_billboard_mode"
+
+set_bind_ip :: Method "set_bind_ip" cls sig => cls -> sig
+set_bind_ip = runMethod @"set_bind_ip"
+
+set_bit :: Method "set_bit" cls sig => cls -> sig
+set_bit = runMethod @"set_bit"
+
+set_bit_rect :: Method "set_bit_rect" cls sig => cls -> sig
+set_bit_rect = runMethod @"set_bit_rect"
+
+set_bitmask :: Method "set_bitmask" cls sig => cls -> sig
+set_bitmask = runMethod @"set_bitmask"
+
+set_blend_mode :: Method "set_blend_mode" cls sig => cls -> sig
+set_blend_mode = runMethod @"set_blend_mode"
+
+set_blend_point_node ::
+                       Method "set_blend_point_node" cls sig => cls -> sig
+set_blend_point_node = runMethod @"set_blend_point_node"
+
+set_blend_point_position ::
+                           Method "set_blend_point_position" cls sig => cls -> sig
+set_blend_point_position = runMethod @"set_blend_point_position"
+
+set_blend_shape_mode ::
+                       Method "set_blend_shape_mode" cls sig => cls -> sig
+set_blend_shape_mode = runMethod @"set_blend_shape_mode"
+
+set_blend_splits :: Method "set_blend_splits" cls sig => cls -> sig
+set_blend_splits = runMethod @"set_blend_splits"
+
+set_blend_time :: Method "set_blend_time" cls sig => cls -> sig
+set_blend_time = runMethod @"set_blend_time"
+
+set_block_signals ::
+                    Method "set_block_signals" cls sig => cls -> sig
+set_block_signals = runMethod @"set_block_signals"
+
+set_blocking_handshake_enabled ::
+                                 Method "set_blocking_handshake_enabled" cls sig => cls -> sig
+set_blocking_handshake_enabled
+  = runMethod @"set_blocking_handshake_enabled"
+
+set_blocking_mode ::
+                    Method "set_blocking_mode" cls sig => cls -> sig
+set_blocking_mode = runMethod @"set_blocking_mode"
+
+set_body_offset :: Method "set_body_offset" cls sig => cls -> sig
+set_body_offset = runMethod @"set_body_offset"
+
+set_body_size_limit ::
+                      Method "set_body_size_limit" cls sig => cls -> sig
+set_body_size_limit = runMethod @"set_body_size_limit"
+
+set_bone_custom_pose ::
+                       Method "set_bone_custom_pose" cls sig => cls -> sig
+set_bone_custom_pose = runMethod @"set_bone_custom_pose"
+
+set_bone_disable_rest ::
+                        Method "set_bone_disable_rest" cls sig => cls -> sig
+set_bone_disable_rest = runMethod @"set_bone_disable_rest"
+
+set_bone_global_pose ::
+                       Method "set_bone_global_pose" cls sig => cls -> sig
+set_bone_global_pose = runMethod @"set_bone_global_pose"
+
+set_bone_ignore_animation ::
+                            Method "set_bone_ignore_animation" cls sig => cls -> sig
+set_bone_ignore_animation = runMethod @"set_bone_ignore_animation"
+
+set_bone_name :: Method "set_bone_name" cls sig => cls -> sig
+set_bone_name = runMethod @"set_bone_name"
+
+set_bone_parent :: Method "set_bone_parent" cls sig => cls -> sig
+set_bone_parent = runMethod @"set_bone_parent"
+
+set_bone_path :: Method "set_bone_path" cls sig => cls -> sig
+set_bone_path = runMethod @"set_bone_path"
+
+set_bone_pose :: Method "set_bone_pose" cls sig => cls -> sig
+set_bone_pose = runMethod @"set_bone_pose"
+
+set_bone_rest :: Method "set_bone_rest" cls sig => cls -> sig
+set_bone_rest = runMethod @"set_bone_rest"
+
+set_bone_weights :: Method "set_bone_weights" cls sig => cls -> sig
+set_bone_weights = runMethod @"set_bone_weights"
+
+set_boot_image :: Method "set_boot_image" cls sig => cls -> sig
+set_boot_image = runMethod @"set_boot_image"
+
+set_border_blend :: Method "set_border_blend" cls sig => cls -> sig
+set_border_blend = runMethod @"set_border_blend"
+
+set_border_color :: Method "set_border_color" cls sig => cls -> sig
+set_border_color = runMethod @"set_border_color"
+
+set_border_width :: Method "set_border_width" cls sig => cls -> sig
+set_border_width = runMethod @"set_border_width"
+
+set_border_width_all ::
+                       Method "set_border_width_all" cls sig => cls -> sig
+set_border_width_all = runMethod @"set_border_width_all"
+
+set_borderless_window ::
+                        Method "set_borderless_window" cls sig => cls -> sig
+set_borderless_window = runMethod @"set_borderless_window"
+
+set_bottom_radius ::
+                    Method "set_bottom_radius" cls sig => cls -> sig
+set_bottom_radius = runMethod @"set_bottom_radius"
+
+set_bounce :: Method "set_bounce" cls sig => cls -> sig
+set_bounce = runMethod @"set_bounce"
+
+set_bounds :: Method "set_bounds" cls sig => cls -> sig
+set_bounds = runMethod @"set_bounds"
+
+set_brake :: Method "set_brake" cls sig => cls -> sig
+set_brake = runMethod @"set_brake"
+
+set_breakpoint_gutter_enabled ::
+                                Method "set_breakpoint_gutter_enabled" cls sig => cls -> sig
+set_breakpoint_gutter_enabled
+  = runMethod @"set_breakpoint_gutter_enabled"
+
+set_buffering_msec ::
+                     Method "set_buffering_msec" cls sig => cls -> sig
+set_buffering_msec = runMethod @"set_buffering_msec"
+
+set_build_mode :: Method "set_build_mode" cls sig => cls -> sig
+set_build_mode = runMethod @"set_build_mode"
+
+set_bus :: Method "set_bus" cls sig => cls -> sig
+set_bus = runMethod @"set_bus"
+
+set_bus_bypass_effects ::
+                         Method "set_bus_bypass_effects" cls sig => cls -> sig
+set_bus_bypass_effects = runMethod @"set_bus_bypass_effects"
+
+set_bus_count :: Method "set_bus_count" cls sig => cls -> sig
+set_bus_count = runMethod @"set_bus_count"
+
+set_bus_effect_enabled ::
+                         Method "set_bus_effect_enabled" cls sig => cls -> sig
+set_bus_effect_enabled = runMethod @"set_bus_effect_enabled"
+
+set_bus_layout :: Method "set_bus_layout" cls sig => cls -> sig
+set_bus_layout = runMethod @"set_bus_layout"
+
+set_bus_mute :: Method "set_bus_mute" cls sig => cls -> sig
+set_bus_mute = runMethod @"set_bus_mute"
+
+set_bus_name :: Method "set_bus_name" cls sig => cls -> sig
+set_bus_name = runMethod @"set_bus_name"
+
+set_bus_send :: Method "set_bus_send" cls sig => cls -> sig
+set_bus_send = runMethod @"set_bus_send"
+
+set_bus_solo :: Method "set_bus_solo" cls sig => cls -> sig
+set_bus_solo = runMethod @"set_bus_solo"
+
+set_bus_volume_db ::
+                    Method "set_bus_volume_db" cls sig => cls -> sig
+set_bus_volume_db = runMethod @"set_bus_volume_db"
+
+set_button :: Method "set_button" cls sig => cls -> sig
+set_button = runMethod @"set_button"
+
+set_button_group :: Method "set_button_group" cls sig => cls -> sig
+set_button_group = runMethod @"set_button_group"
+
+set_button_icon :: Method "set_button_icon" cls sig => cls -> sig
+set_button_icon = runMethod @"set_button_icon"
+
+set_button_index :: Method "set_button_index" cls sig => cls -> sig
+set_button_index = runMethod @"set_button_index"
+
+set_button_mask :: Method "set_button_mask" cls sig => cls -> sig
+set_button_mask = runMethod @"set_button_mask"
+
+set_call_mode :: Method "set_call_mode" cls sig => cls -> sig
+set_call_mode = runMethod @"set_call_mode"
+
+set_can_sleep :: Method "set_can_sleep" cls sig => cls -> sig
+set_can_sleep = runMethod @"set_can_sleep"
+
+set_canvas_max_layer ::
+                       Method "set_canvas_max_layer" cls sig => cls -> sig
+set_canvas_max_layer = runMethod @"set_canvas_max_layer"
+
+set_canvas_transform ::
+                       Method "set_canvas_transform" cls sig => cls -> sig
+set_canvas_transform = runMethod @"set_canvas_transform"
+
+set_capture_cell_size ::
+                        Method "set_capture_cell_size" cls sig => cls -> sig
+set_capture_cell_size = runMethod @"set_capture_cell_size"
+
+set_capture_input_on_drag ::
+                            Method "set_capture_input_on_drag" cls sig => cls -> sig
+set_capture_input_on_drag = runMethod @"set_capture_input_on_drag"
+
+set_cast_shadows_setting ::
+                           Method "set_cast_shadows_setting" cls sig => cls -> sig
+set_cast_shadows_setting = runMethod @"set_cast_shadows_setting"
+
+set_cast_to :: Method "set_cast_to" cls sig => cls -> sig
+set_cast_to = runMethod @"set_cast_to"
+
+set_ceiling_db :: Method "set_ceiling_db" cls sig => cls -> sig
+set_ceiling_db = runMethod @"set_ceiling_db"
+
+set_cell :: Method "set_cell" cls sig => cls -> sig
+set_cell = runMethod @"set_cell"
+
+set_cell_height :: Method "set_cell_height" cls sig => cls -> sig
+set_cell_height = runMethod @"set_cell_height"
+
+set_cell_item :: Method "set_cell_item" cls sig => cls -> sig
+set_cell_item = runMethod @"set_cell_item"
+
+set_cell_mode :: Method "set_cell_mode" cls sig => cls -> sig
+set_cell_mode = runMethod @"set_cell_mode"
+
+set_cell_scale :: Method "set_cell_scale" cls sig => cls -> sig
+set_cell_scale = runMethod @"set_cell_scale"
+
+set_cell_size :: Method "set_cell_size" cls sig => cls -> sig
+set_cell_size = runMethod @"set_cell_size"
+
+set_cell_space_transform ::
+                           Method "set_cell_space_transform" cls sig => cls -> sig
+set_cell_space_transform = runMethod @"set_cell_space_transform"
+
+set_cell_subdiv :: Method "set_cell_subdiv" cls sig => cls -> sig
+set_cell_subdiv = runMethod @"set_cell_subdiv"
+
+set_cellv :: Method "set_cellv" cls sig => cls -> sig
+set_cellv = runMethod @"set_cellv"
+
+set_center_x :: Method "set_center_x" cls sig => cls -> sig
+set_center_x = runMethod @"set_center_x"
+
+set_center_y :: Method "set_center_y" cls sig => cls -> sig
+set_center_y = runMethod @"set_center_y"
+
+set_center_z :: Method "set_center_z" cls sig => cls -> sig
+set_center_z = runMethod @"set_center_z"
+
+set_centered :: Method "set_centered" cls sig => cls -> sig
+set_centered = runMethod @"set_centered"
+
+set_channel_count ::
+                    Method "set_channel_count" cls sig => cls -> sig
+set_channel_count = runMethod @"set_channel_count"
+
+set_checkable :: Method "set_checkable" cls sig => cls -> sig
+set_checkable = runMethod @"set_checkable"
+
+set_checked :: Method "set_checked" cls sig => cls -> sig
+set_checked = runMethod @"set_checked"
+
+set_class_constant ::
+                     Method "set_class_constant" cls sig => cls -> sig
+set_class_constant = runMethod @"set_class_constant"
+
+set_class_name :: Method "set_class_name" cls sig => cls -> sig
+set_class_name = runMethod @"set_class_name"
+
+set_clear_button_enabled ::
+                           Method "set_clear_button_enabled" cls sig => cls -> sig
+set_clear_button_enabled = runMethod @"set_clear_button_enabled"
+
+set_clear_mode :: Method "set_clear_mode" cls sig => cls -> sig
+set_clear_mode = runMethod @"set_clear_mode"
+
+set_clearcoat :: Method "set_clearcoat" cls sig => cls -> sig
+set_clearcoat = runMethod @"set_clearcoat"
+
+set_clearcoat_gloss ::
+                      Method "set_clearcoat_gloss" cls sig => cls -> sig
+set_clearcoat_gloss = runMethod @"set_clearcoat_gloss"
+
+set_click_mask :: Method "set_click_mask" cls sig => cls -> sig
+set_click_mask = runMethod @"set_click_mask"
+
+set_clip :: Method "set_clip" cls sig => cls -> sig
+set_clip = runMethod @"set_clip"
+
+set_clip_contents ::
+                    Method "set_clip_contents" cls sig => cls -> sig
+set_clip_contents = runMethod @"set_clip_contents"
+
+set_clip_text :: Method "set_clip_text" cls sig => cls -> sig
+set_clip_text = runMethod @"set_clip_text"
+
+set_clip_to_areas ::
+                    Method "set_clip_to_areas" cls sig => cls -> sig
+set_clip_to_areas = runMethod @"set_clip_to_areas"
+
+set_clip_to_bodies ::
+                     Method "set_clip_to_bodies" cls sig => cls -> sig
+set_clip_to_bodies = runMethod @"set_clip_to_bodies"
+
+set_clip_uv :: Method "set_clip_uv" cls sig => cls -> sig
+set_clip_uv = runMethod @"set_clip_uv"
+
+set_clipboard :: Method "set_clipboard" cls sig => cls -> sig
+set_clipboard = runMethod @"set_clipboard"
+
+set_closed :: Method "set_closed" cls sig => cls -> sig
+set_closed = runMethod @"set_closed"
+
+set_code :: Method "set_code" cls sig => cls -> sig
+set_code = runMethod @"set_code"
+
+set_collapsed :: Method "set_collapsed" cls sig => cls -> sig
+set_collapsed = runMethod @"set_collapsed"
+
+set_collide_with_areas ::
+                         Method "set_collide_with_areas" cls sig => cls -> sig
+set_collide_with_areas = runMethod @"set_collide_with_areas"
+
+set_collide_with_bodies ::
+                          Method "set_collide_with_bodies" cls sig => cls -> sig
+set_collide_with_bodies = runMethod @"set_collide_with_bodies"
+
+set_collision_bounce ::
+                       Method "set_collision_bounce" cls sig => cls -> sig
+set_collision_bounce = runMethod @"set_collision_bounce"
+
+set_collision_friction ::
+                         Method "set_collision_friction" cls sig => cls -> sig
+set_collision_friction = runMethod @"set_collision_friction"
+
+set_collision_layer ::
+                      Method "set_collision_layer" cls sig => cls -> sig
+set_collision_layer = runMethod @"set_collision_layer"
+
+set_collision_layer_bit ::
+                          Method "set_collision_layer_bit" cls sig => cls -> sig
+set_collision_layer_bit = runMethod @"set_collision_layer_bit"
+
+set_collision_mask ::
+                     Method "set_collision_mask" cls sig => cls -> sig
+set_collision_mask = runMethod @"set_collision_mask"
+
+set_collision_mask_bit ::
+                         Method "set_collision_mask_bit" cls sig => cls -> sig
+set_collision_mask_bit = runMethod @"set_collision_mask_bit"
+
+set_collision_use_kinematic ::
+                              Method "set_collision_use_kinematic" cls sig => cls -> sig
+set_collision_use_kinematic
+  = runMethod @"set_collision_use_kinematic"
+
+set_color :: Method "set_color" cls sig => cls -> sig
+set_color = runMethod @"set_color"
+
+set_color_default ::
+                    Method "set_color_default" cls sig => cls -> sig
+set_color_default = runMethod @"set_color_default"
+
+set_color_format :: Method "set_color_format" cls sig => cls -> sig
+set_color_format = runMethod @"set_color_format"
+
+set_color_ramp :: Method "set_color_ramp" cls sig => cls -> sig
+set_color_ramp = runMethod @"set_color_ramp"
+
+set_colors :: Method "set_colors" cls sig => cls -> sig
+set_colors = runMethod @"set_colors"
+
+set_column_expand ::
+                    Method "set_column_expand" cls sig => cls -> sig
+set_column_expand = runMethod @"set_column_expand"
+
+set_column_min_width ::
+                       Method "set_column_min_width" cls sig => cls -> sig
+set_column_min_width = runMethod @"set_column_min_width"
+
+set_column_title :: Method "set_column_title" cls sig => cls -> sig
+set_column_title = runMethod @"set_column_title"
+
+set_column_titles_visible ::
+                            Method "set_column_titles_visible" cls sig => cls -> sig
+set_column_titles_visible = runMethod @"set_column_titles_visible"
+
+set_columns :: Method "set_columns" cls sig => cls -> sig
+set_columns = runMethod @"set_columns"
+
+set_command :: Method "set_command" cls sig => cls -> sig
+set_command = runMethod @"set_command"
+
+set_comment :: Method "set_comment" cls sig => cls -> sig
+set_comment = runMethod @"set_comment"
+
+set_compress :: Method "set_compress" cls sig => cls -> sig
+set_compress = runMethod @"set_compress"
+
+set_compression_mode ::
+                       Method "set_compression_mode" cls sig => cls -> sig
+set_compression_mode = runMethod @"set_compression_mode"
+
+set_cone :: Method "set_cone" cls sig => cls -> sig
+set_cone = runMethod @"set_cone"
+
+set_config_file :: Method "set_config_file" cls sig => cls -> sig
+set_config_file = runMethod @"set_config_file"
+
+set_connection :: Method "set_connection" cls sig => cls -> sig
+set_connection = runMethod @"set_connection"
+
+set_connection_activity ::
+                          Method "set_connection_activity" cls sig => cls -> sig
+set_connection_activity = runMethod @"set_connection_activity"
+
+set_constant :: Method "set_constant" cls sig => cls -> sig
+set_constant = runMethod @"set_constant"
+
+set_constant_angular_velocity ::
+                                Method "set_constant_angular_velocity" cls sig => cls -> sig
+set_constant_angular_velocity
+  = runMethod @"set_constant_angular_velocity"
+
+set_constant_linear_velocity ::
+                               Method "set_constant_linear_velocity" cls sig => cls -> sig
+set_constant_linear_velocity
+  = runMethod @"set_constant_linear_velocity"
+
+set_constant_type ::
+                    Method "set_constant_type" cls sig => cls -> sig
+set_constant_type = runMethod @"set_constant_type"
+
+set_constant_value ::
+                     Method "set_constant_value" cls sig => cls -> sig
+set_constant_value = runMethod @"set_constant_value"
+
+set_constructor :: Method "set_constructor" cls sig => cls -> sig
+set_constructor = runMethod @"set_constructor"
+
+set_constructor_type ::
+                       Method "set_constructor_type" cls sig => cls -> sig
+set_constructor_type = runMethod @"set_constructor_type"
+
+set_contact_monitor ::
+                      Method "set_contact_monitor" cls sig => cls -> sig
+set_contact_monitor = runMethod @"set_contact_monitor"
+
+set_context_menu_enabled ::
+                           Method "set_context_menu_enabled" cls sig => cls -> sig
+set_context_menu_enabled = runMethod @"set_context_menu_enabled"
+
+set_continuous_collision_detection_mode ::
+                                          Method "set_continuous_collision_detection_mode" cls
+                                            sig =>
+                                          cls -> sig
+set_continuous_collision_detection_mode
+  = runMethod @"set_continuous_collision_detection_mode"
+
+set_control :: Method "set_control" cls sig => cls -> sig
+set_control = runMethod @"set_control"
+
+set_controller_id ::
+                    Method "set_controller_id" cls sig => cls -> sig
+set_controller_id = runMethod @"set_controller_id"
+
+set_copy_mode :: Method "set_copy_mode" cls sig => cls -> sig
+set_copy_mode = runMethod @"set_copy_mode"
+
+set_corner_detail ::
+                    Method "set_corner_detail" cls sig => cls -> sig
+set_corner_detail = runMethod @"set_corner_detail"
+
+set_corner_radius ::
+                    Method "set_corner_radius" cls sig => cls -> sig
+set_corner_radius = runMethod @"set_corner_radius"
+
+set_corner_radius_all ::
+                        Method "set_corner_radius_all" cls sig => cls -> sig
+set_corner_radius_all = runMethod @"set_corner_radius_all"
+
+set_corner_radius_individual ::
+                               Method "set_corner_radius_individual" cls sig => cls -> sig
+set_corner_radius_individual
+  = runMethod @"set_corner_radius_individual"
+
+set_cross_fade_time ::
+                      Method "set_cross_fade_time" cls sig => cls -> sig
+set_cross_fade_time = runMethod @"set_cross_fade_time"
+
+set_cube_map :: Method "set_cube_map" cls sig => cls -> sig
+set_cube_map = runMethod @"set_cube_map"
+
+set_cubic_interpolation ::
+                          Method "set_cubic_interpolation" cls sig => cls -> sig
+set_cubic_interpolation = runMethod @"set_cubic_interpolation"
+
+set_cull_mask :: Method "set_cull_mask" cls sig => cls -> sig
+set_cull_mask = runMethod @"set_cull_mask"
+
+set_cull_mask_bit ::
+                    Method "set_cull_mask_bit" cls sig => cls -> sig
+set_cull_mask_bit = runMethod @"set_cull_mask_bit"
+
+set_cull_mode :: Method "set_cull_mode" cls sig => cls -> sig
+set_cull_mode = runMethod @"set_cull_mode"
+
+set_current :: Method "set_current" cls sig => cls -> sig
+set_current = runMethod @"set_current"
+
+set_current_animation ::
+                        Method "set_current_animation" cls sig => cls -> sig
+set_current_animation = runMethod @"set_current_animation"
+
+set_current_dir :: Method "set_current_dir" cls sig => cls -> sig
+set_current_dir = runMethod @"set_current_dir"
+
+set_current_file :: Method "set_current_file" cls sig => cls -> sig
+set_current_file = runMethod @"set_current_file"
+
+set_current_path :: Method "set_current_path" cls sig => cls -> sig
+set_current_path = runMethod @"set_current_path"
+
+set_current_scene ::
+                    Method "set_current_scene" cls sig => cls -> sig
+set_current_scene = runMethod @"set_current_scene"
+
+set_current_screen ::
+                     Method "set_current_screen" cls sig => cls -> sig
+set_current_screen = runMethod @"set_current_screen"
+
+set_current_tab :: Method "set_current_tab" cls sig => cls -> sig
+set_current_tab = runMethod @"set_current_tab"
+
+set_cursor_position ::
+                      Method "set_cursor_position" cls sig => cls -> sig
+set_cursor_position = runMethod @"set_cursor_position"
+
+set_curve :: Method "set_curve" cls sig => cls -> sig
+set_curve = runMethod @"set_curve"
+
+set_custom_aabb :: Method "set_custom_aabb" cls sig => cls -> sig
+set_custom_aabb = runMethod @"set_custom_aabb"
+
+set_custom_as_button ::
+                       Method "set_custom_as_button" cls sig => cls -> sig
+set_custom_as_button = runMethod @"set_custom_as_button"
+
+set_custom_bg_color ::
+                      Method "set_custom_bg_color" cls sig => cls -> sig
+set_custom_bg_color = runMethod @"set_custom_bg_color"
+
+set_custom_color :: Method "set_custom_color" cls sig => cls -> sig
+set_custom_color = runMethod @"set_custom_color"
+
+set_custom_data_format ::
+                         Method "set_custom_data_format" cls sig => cls -> sig
+set_custom_data_format = runMethod @"set_custom_data_format"
+
+set_custom_draw :: Method "set_custom_draw" cls sig => cls -> sig
+set_custom_draw = runMethod @"set_custom_draw"
+
+set_custom_minimum_height ::
+                            Method "set_custom_minimum_height" cls sig => cls -> sig
+set_custom_minimum_height = runMethod @"set_custom_minimum_height"
+
+set_custom_minimum_size ::
+                          Method "set_custom_minimum_size" cls sig => cls -> sig
+set_custom_minimum_size = runMethod @"set_custom_minimum_size"
+
+set_custom_mouse_cursor ::
+                          Method "set_custom_mouse_cursor" cls sig => cls -> sig
+set_custom_mouse_cursor = runMethod @"set_custom_mouse_cursor"
+
+set_custom_multiplayer ::
+                         Method "set_custom_multiplayer" cls sig => cls -> sig
+set_custom_multiplayer = runMethod @"set_custom_multiplayer"
+
+set_custom_solver_bias ::
+                         Method "set_custom_solver_bias" cls sig => cls -> sig
+set_custom_solver_bias = runMethod @"set_custom_solver_bias"
+
+set_custom_step :: Method "set_custom_step" cls sig => cls -> sig
+set_custom_step = runMethod @"set_custom_step"
+
+set_custom_transform ::
+                       Method "set_custom_transform" cls sig => cls -> sig
+set_custom_transform = runMethod @"set_custom_transform"
+
+set_custom_viewport ::
+                      Method "set_custom_viewport" cls sig => cls -> sig
+set_custom_viewport = runMethod @"set_custom_viewport"
+
+set_cutoff :: Method "set_cutoff" cls sig => cls -> sig
+set_cutoff = runMethod @"set_cutoff"
+
+set_d :: Method "set_d" cls sig => cls -> sig
+set_d = runMethod @"set_d"
+
+set_damping :: Method "set_damping" cls sig => cls -> sig
+set_damping = runMethod @"set_damping"
+
+set_damping_coefficient ::
+                          Method "set_damping_coefficient" cls sig => cls -> sig
+set_damping_coefficient = runMethod @"set_damping_coefficient"
+
+set_damping_compression ::
+                          Method "set_damping_compression" cls sig => cls -> sig
+set_damping_compression = runMethod @"set_damping_compression"
+
+set_damping_relaxation ::
+                         Method "set_damping_relaxation" cls sig => cls -> sig
+set_damping_relaxation = runMethod @"set_damping_relaxation"
+
+set_data :: Method "set_data" cls sig => cls -> sig
+set_data = runMethod @"set_data"
+
+set_data_array :: Method "set_data_array" cls sig => cls -> sig
+set_data_array = runMethod @"set_data_array"
+
+set_data_partial :: Method "set_data_partial" cls sig => cls -> sig
+set_data_partial = runMethod @"set_data_partial"
+
+set_db :: Method "set_db" cls sig => cls -> sig
+set_db = runMethod @"set_db"
+
+set_deadzone :: Method "set_deadzone" cls sig => cls -> sig
+set_deadzone = runMethod @"set_deadzone"
+
+set_debug_collisions_hint ::
+                            Method "set_debug_collisions_hint" cls sig => cls -> sig
+set_debug_collisions_hint = runMethod @"set_debug_collisions_hint"
+
+set_debug_draw :: Method "set_debug_draw" cls sig => cls -> sig
+set_debug_draw = runMethod @"set_debug_draw"
+
+set_debug_generate_wireframes ::
+                                Method "set_debug_generate_wireframes" cls sig => cls -> sig
+set_debug_generate_wireframes
+  = runMethod @"set_debug_generate_wireframes"
+
+set_debug_navigation_hint ::
+                            Method "set_debug_navigation_hint" cls sig => cls -> sig
+set_debug_navigation_hint = runMethod @"set_debug_navigation_hint"
+
+set_deconstruct_type ::
+                       Method "set_deconstruct_type" cls sig => cls -> sig
+set_deconstruct_type = runMethod @"set_deconstruct_type"
+
+set_default_blend_time ::
+                         Method "set_default_blend_time" cls sig => cls -> sig
+set_default_blend_time = runMethod @"set_default_blend_time"
+
+set_default_clear_color ::
+                          Method "set_default_clear_color" cls sig => cls -> sig
+set_default_clear_color = runMethod @"set_default_clear_color"
+
+set_default_color ::
+                    Method "set_default_color" cls sig => cls -> sig
+set_default_color = runMethod @"set_default_color"
+
+set_default_cursor_shape ::
+                           Method "set_default_cursor_shape" cls sig => cls -> sig
+set_default_cursor_shape = runMethod @"set_default_cursor_shape"
+
+set_default_font :: Method "set_default_font" cls sig => cls -> sig
+set_default_font = runMethod @"set_default_font"
+
+set_default_input_value ::
+                          Method "set_default_input_value" cls sig => cls -> sig
+set_default_input_value = runMethod @"set_default_input_value"
+
+set_default_length ::
+                     Method "set_default_length" cls sig => cls -> sig
+set_default_length = runMethod @"set_default_length"
+
+set_default_margin ::
+                     Method "set_default_margin" cls sig => cls -> sig
+set_default_margin = runMethod @"set_default_margin"
+
+set_default_texture_param ::
+                            Method "set_default_texture_param" cls sig => cls -> sig
+set_default_texture_param = runMethod @"set_default_texture_param"
+
+set_deferred_mode ::
+                    Method "set_deferred_mode" cls sig => cls -> sig
+set_deferred_mode = runMethod @"set_deferred_mode"
+
+set_delta :: Method "set_delta" cls sig => cls -> sig
+set_delta = runMethod @"set_delta"
+
+set_depth :: Method "set_depth" cls sig => cls -> sig
+set_depth = runMethod @"set_depth"
+
+set_depth_deep_parallax ::
+                          Method "set_depth_deep_parallax" cls sig => cls -> sig
+set_depth_deep_parallax = runMethod @"set_depth_deep_parallax"
+
+set_depth_deep_parallax_max_layers ::
+                                     Method "set_depth_deep_parallax_max_layers" cls sig =>
+                                     cls -> sig
+set_depth_deep_parallax_max_layers
+  = runMethod @"set_depth_deep_parallax_max_layers"
+
+set_depth_deep_parallax_min_layers ::
+                                     Method "set_depth_deep_parallax_min_layers" cls sig =>
+                                     cls -> sig
+set_depth_deep_parallax_min_layers
+  = runMethod @"set_depth_deep_parallax_min_layers"
+
+set_depth_draw_mode ::
+                      Method "set_depth_draw_mode" cls sig => cls -> sig
+set_depth_draw_mode = runMethod @"set_depth_draw_mode"
+
+set_depth_scale :: Method "set_depth_scale" cls sig => cls -> sig
+set_depth_scale = runMethod @"set_depth_scale"
+
+set_description :: Method "set_description" cls sig => cls -> sig
+set_description = runMethod @"set_description"
+
+set_description_url ::
+                      Method "set_description_url" cls sig => cls -> sig
+set_description_url = runMethod @"set_description_url"
+
+set_dest_address :: Method "set_dest_address" cls sig => cls -> sig
+set_dest_address = runMethod @"set_dest_address"
+
+set_detail_blend_mode ::
+                        Method "set_detail_blend_mode" cls sig => cls -> sig
+set_detail_blend_mode = runMethod @"set_detail_blend_mode"
+
+set_detail_sample_distance ::
+                             Method "set_detail_sample_distance" cls sig => cls -> sig
+set_detail_sample_distance
+  = runMethod @"set_detail_sample_distance"
+
+set_detail_sample_max_error ::
+                              Method "set_detail_sample_max_error" cls sig => cls -> sig
+set_detail_sample_max_error
+  = runMethod @"set_detail_sample_max_error"
+
+set_detail_uv :: Method "set_detail_uv" cls sig => cls -> sig
+set_detail_uv = runMethod @"set_detail_uv"
+
+set_device :: Method "set_device" cls sig => cls -> sig
+set_device = runMethod @"set_device"
+
+set_diffuse_mode :: Method "set_diffuse_mode" cls sig => cls -> sig
+set_diffuse_mode = runMethod @"set_diffuse_mode"
+
+set_disable_3d :: Method "set_disable_3d" cls sig => cls -> sig
+set_disable_3d = runMethod @"set_disable_3d"
+
+set_disable_folding ::
+                      Method "set_disable_folding" cls sig => cls -> sig
+set_disable_folding = runMethod @"set_disable_folding"
+
+set_disable_input ::
+                    Method "set_disable_input" cls sig => cls -> sig
+set_disable_input = runMethod @"set_disable_input"
+
+set_disable_overwrite_warning ::
+                                Method "set_disable_overwrite_warning" cls sig => cls -> sig
+set_disable_overwrite_warning
+  = runMethod @"set_disable_overwrite_warning"
+
+set_disable_scale ::
+                    Method "set_disable_scale" cls sig => cls -> sig
+set_disable_scale = runMethod @"set_disable_scale"
+
+set_disable_shortcuts ::
+                        Method "set_disable_shortcuts" cls sig => cls -> sig
+set_disable_shortcuts = runMethod @"set_disable_shortcuts"
+
+set_disabled :: Method "set_disabled" cls sig => cls -> sig
+set_disabled = runMethod @"set_disabled"
+
+set_disabled_texture ::
+                       Method "set_disabled_texture" cls sig => cls -> sig
+set_disabled_texture = runMethod @"set_disabled_texture"
+
+set_discover_ipv6 ::
+                    Method "set_discover_ipv6" cls sig => cls -> sig
+set_discover_ipv6 = runMethod @"set_discover_ipv6"
+
+set_discover_local_port ::
+                          Method "set_discover_local_port" cls sig => cls -> sig
+set_discover_local_port = runMethod @"set_discover_local_port"
+
+set_discover_multicast_if ::
+                            Method "set_discover_multicast_if" cls sig => cls -> sig
+set_discover_multicast_if = runMethod @"set_discover_multicast_if"
+
+set_dispatch_mode ::
+                    Method "set_dispatch_mode" cls sig => cls -> sig
+set_dispatch_mode = runMethod @"set_dispatch_mode"
+
+set_display_folded ::
+                     Method "set_display_folded" cls sig => cls -> sig
+set_display_folded = runMethod @"set_display_folded"
+
+set_display_mode :: Method "set_display_mode" cls sig => cls -> sig
+set_display_mode = runMethod @"set_display_mode"
+
+set_display_to_lens ::
+                      Method "set_display_to_lens" cls sig => cls -> sig
+set_display_to_lens = runMethod @"set_display_to_lens"
+
+set_display_width ::
+                    Method "set_display_width" cls sig => cls -> sig
+set_display_width = runMethod @"set_display_width"
+
+set_distance_fade ::
+                    Method "set_distance_fade" cls sig => cls -> sig
+set_distance_fade = runMethod @"set_distance_fade"
+
+set_distance_fade_max_distance ::
+                                 Method "set_distance_fade_max_distance" cls sig => cls -> sig
+set_distance_fade_max_distance
+  = runMethod @"set_distance_fade_max_distance"
+
+set_distance_fade_min_distance ::
+                                 Method "set_distance_fade_min_distance" cls sig => cls -> sig
+set_distance_fade_min_distance
+  = runMethod @"set_distance_fade_min_distance"
+
+set_distance_field_hint ::
+                          Method "set_distance_field_hint" cls sig => cls -> sig
+set_distance_field_hint = runMethod @"set_distance_field_hint"
+
+set_dof_blur_far_amount ::
+                          Method "set_dof_blur_far_amount" cls sig => cls -> sig
+set_dof_blur_far_amount = runMethod @"set_dof_blur_far_amount"
+
+set_dof_blur_far_distance ::
+                            Method "set_dof_blur_far_distance" cls sig => cls -> sig
+set_dof_blur_far_distance = runMethod @"set_dof_blur_far_distance"
+
+set_dof_blur_far_enabled ::
+                           Method "set_dof_blur_far_enabled" cls sig => cls -> sig
+set_dof_blur_far_enabled = runMethod @"set_dof_blur_far_enabled"
+
+set_dof_blur_far_quality ::
+                           Method "set_dof_blur_far_quality" cls sig => cls -> sig
+set_dof_blur_far_quality = runMethod @"set_dof_blur_far_quality"
+
+set_dof_blur_far_transition ::
+                              Method "set_dof_blur_far_transition" cls sig => cls -> sig
+set_dof_blur_far_transition
+  = runMethod @"set_dof_blur_far_transition"
+
+set_dof_blur_near_amount ::
+                           Method "set_dof_blur_near_amount" cls sig => cls -> sig
+set_dof_blur_near_amount = runMethod @"set_dof_blur_near_amount"
+
+set_dof_blur_near_distance ::
+                             Method "set_dof_blur_near_distance" cls sig => cls -> sig
+set_dof_blur_near_distance
+  = runMethod @"set_dof_blur_near_distance"
+
+set_dof_blur_near_enabled ::
+                            Method "set_dof_blur_near_enabled" cls sig => cls -> sig
+set_dof_blur_near_enabled = runMethod @"set_dof_blur_near_enabled"
+
+set_dof_blur_near_quality ::
+                            Method "set_dof_blur_near_quality" cls sig => cls -> sig
+set_dof_blur_near_quality = runMethod @"set_dof_blur_near_quality"
+
+set_dof_blur_near_transition ::
+                               Method "set_dof_blur_near_transition" cls sig => cls -> sig
+set_dof_blur_near_transition
+  = runMethod @"set_dof_blur_near_transition"
+
+set_doppler_tracking ::
+                       Method "set_doppler_tracking" cls sig => cls -> sig
+set_doppler_tracking = runMethod @"set_doppler_tracking"
+
+set_doubleclick :: Method "set_doubleclick" cls sig => cls -> sig
+set_doubleclick = runMethod @"set_doubleclick"
+
+set_download_file ::
+                    Method "set_download_file" cls sig => cls -> sig
+set_download_file = runMethod @"set_download_file"
+
+set_drag_coefficient ::
+                       Method "set_drag_coefficient" cls sig => cls -> sig
+set_drag_coefficient = runMethod @"set_drag_coefficient"
+
+set_drag_forwarding ::
+                      Method "set_drag_forwarding" cls sig => cls -> sig
+set_drag_forwarding = runMethod @"set_drag_forwarding"
+
+set_drag_margin :: Method "set_drag_margin" cls sig => cls -> sig
+set_drag_margin = runMethod @"set_drag_margin"
+
+set_drag_preview :: Method "set_drag_preview" cls sig => cls -> sig
+set_drag_preview = runMethod @"set_drag_preview"
+
+set_drag_to_rearrange_enabled ::
+                                Method "set_drag_to_rearrange_enabled" cls sig => cls -> sig
+set_drag_to_rearrange_enabled
+  = runMethod @"set_drag_to_rearrange_enabled"
+
+set_dragger_visibility ::
+                         Method "set_dragger_visibility" cls sig => cls -> sig
+set_dragger_visibility = runMethod @"set_dragger_visibility"
+
+set_draw_behind_parent ::
+                         Method "set_draw_behind_parent" cls sig => cls -> sig
+set_draw_behind_parent = runMethod @"set_draw_behind_parent"
+
+set_draw_center :: Method "set_draw_center" cls sig => cls -> sig
+set_draw_center = runMethod @"set_draw_center"
+
+set_draw_flag :: Method "set_draw_flag" cls sig => cls -> sig
+set_draw_flag = runMethod @"set_draw_flag"
+
+set_draw_order :: Method "set_draw_order" cls sig => cls -> sig
+set_draw_order = runMethod @"set_draw_order"
+
+set_draw_pass_mesh ::
+                     Method "set_draw_pass_mesh" cls sig => cls -> sig
+set_draw_pass_mesh = runMethod @"set_draw_pass_mesh"
+
+set_draw_passes :: Method "set_draw_passes" cls sig => cls -> sig
+set_draw_passes = runMethod @"set_draw_passes"
+
+set_draw_red :: Method "set_draw_red" cls sig => cls -> sig
+set_draw_red = runMethod @"set_draw_red"
+
+set_drive :: Method "set_drive" cls sig => cls -> sig
+set_drive = runMethod @"set_drive"
+
+set_drop_mode_flags ::
+                      Method "set_drop_mode_flags" cls sig => cls -> sig
+set_drop_mode_flags = runMethod @"set_drop_mode_flags"
+
+set_dry :: Method "set_dry" cls sig => cls -> sig
+set_dry = runMethod @"set_dry"
+
+set_dynamic_data :: Method "set_dynamic_data" cls sig => cls -> sig
+set_dynamic_data = runMethod @"set_dynamic_data"
+
+set_dynamic_range ::
+                    Method "set_dynamic_range" cls sig => cls -> sig
+set_dynamic_range = runMethod @"set_dynamic_range"
+
+set_echo :: Method "set_echo" cls sig => cls -> sig
+set_echo = runMethod @"set_echo"
+
+set_edge_max_error ::
+                     Method "set_edge_max_error" cls sig => cls -> sig
+set_edge_max_error = runMethod @"set_edge_max_error"
+
+set_edge_max_length ::
+                      Method "set_edge_max_length" cls sig => cls -> sig
+set_edge_max_length = runMethod @"set_edge_max_length"
+
+set_edge_meta :: Method "set_edge_meta" cls sig => cls -> sig
+set_edge_meta = runMethod @"set_edge_meta"
+
+set_edit_alpha :: Method "set_edit_alpha" cls sig => cls -> sig
+set_edit_alpha = runMethod @"set_edit_alpha"
+
+set_editable :: Method "set_editable" cls sig => cls -> sig
+set_editable = runMethod @"set_editable"
+
+set_edited_scene_root ::
+                        Method "set_edited_scene_root" cls sig => cls -> sig
+set_edited_scene_root = runMethod @"set_edited_scene_root"
+
+set_editor_hint :: Method "set_editor_hint" cls sig => cls -> sig
+set_editor_hint = runMethod @"set_editor_hint"
+
+set_editor_only :: Method "set_editor_only" cls sig => cls -> sig
+set_editor_only = runMethod @"set_editor_only"
+
+set_emission :: Method "set_emission" cls sig => cls -> sig
+set_emission = runMethod @"set_emission"
+
+set_emission_angle ::
+                     Method "set_emission_angle" cls sig => cls -> sig
+set_emission_angle = runMethod @"set_emission_angle"
+
+set_emission_angle_enabled ::
+                             Method "set_emission_angle_enabled" cls sig => cls -> sig
+set_emission_angle_enabled
+  = runMethod @"set_emission_angle_enabled"
+
+set_emission_angle_filter_attenuation_db ::
+                                           Method "set_emission_angle_filter_attenuation_db" cls
+                                             sig =>
+                                           cls -> sig
+set_emission_angle_filter_attenuation_db
+  = runMethod @"set_emission_angle_filter_attenuation_db"
+
+set_emission_box_extents ::
+                           Method "set_emission_box_extents" cls sig => cls -> sig
+set_emission_box_extents = runMethod @"set_emission_box_extents"
+
+set_emission_color_texture ::
+                             Method "set_emission_color_texture" cls sig => cls -> sig
+set_emission_color_texture
+  = runMethod @"set_emission_color_texture"
+
+set_emission_colors ::
+                      Method "set_emission_colors" cls sig => cls -> sig
+set_emission_colors = runMethod @"set_emission_colors"
+
+set_emission_energy ::
+                      Method "set_emission_energy" cls sig => cls -> sig
+set_emission_energy = runMethod @"set_emission_energy"
+
+set_emission_normal_texture ::
+                              Method "set_emission_normal_texture" cls sig => cls -> sig
+set_emission_normal_texture
+  = runMethod @"set_emission_normal_texture"
+
+set_emission_normals ::
+                       Method "set_emission_normals" cls sig => cls -> sig
+set_emission_normals = runMethod @"set_emission_normals"
+
+set_emission_operator ::
+                        Method "set_emission_operator" cls sig => cls -> sig
+set_emission_operator = runMethod @"set_emission_operator"
+
+set_emission_point_count ::
+                           Method "set_emission_point_count" cls sig => cls -> sig
+set_emission_point_count = runMethod @"set_emission_point_count"
+
+set_emission_point_texture ::
+                             Method "set_emission_point_texture" cls sig => cls -> sig
+set_emission_point_texture
+  = runMethod @"set_emission_point_texture"
+
+set_emission_points ::
+                      Method "set_emission_points" cls sig => cls -> sig
+set_emission_points = runMethod @"set_emission_points"
+
+set_emission_rect_extents ::
+                            Method "set_emission_rect_extents" cls sig => cls -> sig
+set_emission_rect_extents = runMethod @"set_emission_rect_extents"
+
+set_emission_shape ::
+                     Method "set_emission_shape" cls sig => cls -> sig
+set_emission_shape = runMethod @"set_emission_shape"
+
+set_emission_sphere_radius ::
+                             Method "set_emission_sphere_radius" cls sig => cls -> sig
+set_emission_sphere_radius
+  = runMethod @"set_emission_sphere_radius"
+
+set_emitting :: Method "set_emitting" cls sig => cls -> sig
+set_emitting = runMethod @"set_emitting"
+
+set_enable_box_projection ::
+                            Method "set_enable_box_projection" cls sig => cls -> sig
+set_enable_box_projection = runMethod @"set_enable_box_projection"
+
+set_enable_follow_smoothing ::
+                              Method "set_enable_follow_smoothing" cls sig => cls -> sig
+set_enable_follow_smoothing
+  = runMethod @"set_enable_follow_smoothing"
+
+set_enable_h_scroll ::
+                      Method "set_enable_h_scroll" cls sig => cls -> sig
+set_enable_h_scroll = runMethod @"set_enable_h_scroll"
+
+set_enable_return_value ::
+                          Method "set_enable_return_value" cls sig => cls -> sig
+set_enable_return_value = runMethod @"set_enable_return_value"
+
+set_enable_shadows ::
+                     Method "set_enable_shadows" cls sig => cls -> sig
+set_enable_shadows = runMethod @"set_enable_shadows"
+
+set_enable_v_scroll ::
+                      Method "set_enable_v_scroll" cls sig => cls -> sig
+set_enable_v_scroll = runMethod @"set_enable_v_scroll"
+
+set_enabled :: Method "set_enabled" cls sig => cls -> sig
+set_enabled = runMethod @"set_enabled"
+
+set_enabled_focus_mode ::
+                         Method "set_enabled_focus_mode" cls sig => cls -> sig
+set_enabled_focus_mode = runMethod @"set_enabled_focus_mode"
+
+set_enabled_inputs ::
+                     Method "set_enabled_inputs" cls sig => cls -> sig
+set_enabled_inputs = runMethod @"set_enabled_inputs"
+
+set_enabler :: Method "set_enabler" cls sig => cls -> sig
+set_enabler = runMethod @"set_enabler"
+
+set_end :: Method "set_end" cls sig => cls -> sig
+set_end = runMethod @"set_end"
+
+set_end_cap_mode :: Method "set_end_cap_mode" cls sig => cls -> sig
+set_end_cap_mode = runMethod @"set_end_cap_mode"
+
+set_end_node :: Method "set_end_node" cls sig => cls -> sig
+set_end_node = runMethod @"set_end_node"
+
+set_endian_swap :: Method "set_endian_swap" cls sig => cls -> sig
+set_endian_swap = runMethod @"set_endian_swap"
+
+set_energy :: Method "set_energy" cls sig => cls -> sig
+set_energy = runMethod @"set_energy"
+
+set_engine_force :: Method "set_engine_force" cls sig => cls -> sig
+set_engine_force = runMethod @"set_engine_force"
+
+set_environment :: Method "set_environment" cls sig => cls -> sig
+set_environment = runMethod @"set_environment"
+
+set_error :: Method "set_error" cls sig => cls -> sig
+set_error = runMethod @"set_error"
+
+set_error_line :: Method "set_error_line" cls sig => cls -> sig
+set_error_line = runMethod @"set_error_line"
+
+set_error_string :: Method "set_error_string" cls sig => cls -> sig
+set_error_string = runMethod @"set_error_string"
+
+set_exclude :: Method "set_exclude" cls sig => cls -> sig
+set_exclude = runMethod @"set_exclude"
+
+set_exclude_nodes_from_collision ::
+                                   Method "set_exclude_nodes_from_collision" cls sig => cls -> sig
+set_exclude_nodes_from_collision
+  = runMethod @"set_exclude_nodes_from_collision"
+
+set_exclude_parent_body ::
+                          Method "set_exclude_parent_body" cls sig => cls -> sig
+set_exclude_parent_body = runMethod @"set_exclude_parent_body"
+
+set_exclusive :: Method "set_exclusive" cls sig => cls -> sig
+set_exclusive = runMethod @"set_exclusive"
+
+set_exit_code :: Method "set_exit_code" cls sig => cls -> sig
+set_exit_code = runMethod @"set_exit_code"
+
+set_exp_ratio :: Method "set_exp_ratio" cls sig => cls -> sig
+set_exp_ratio = runMethod @"set_exp_ratio"
+
+set_expand :: Method "set_expand" cls sig => cls -> sig
+set_expand = runMethod @"set_expand"
+
+set_expand_margin ::
+                    Method "set_expand_margin" cls sig => cls -> sig
+set_expand_margin = runMethod @"set_expand_margin"
+
+set_expand_margin_all ::
+                        Method "set_expand_margin_all" cls sig => cls -> sig
+set_expand_margin_all = runMethod @"set_expand_margin_all"
+
+set_expand_margin_individual ::
+                               Method "set_expand_margin_individual" cls sig => cls -> sig
+set_expand_margin_individual
+  = runMethod @"set_expand_margin_individual"
+
+set_expand_margin_size ::
+                         Method "set_expand_margin_size" cls sig => cls -> sig
+set_expand_margin_size = runMethod @"set_expand_margin_size"
+
+set_expand_right :: Method "set_expand_right" cls sig => cls -> sig
+set_expand_right = runMethod @"set_expand_right"
+
+set_expand_to_text_length ::
+                            Method "set_expand_to_text_length" cls sig => cls -> sig
+set_expand_to_text_length = runMethod @"set_expand_to_text_length"
+
+set_explosiveness_ratio ::
+                          Method "set_explosiveness_ratio" cls sig => cls -> sig
+set_explosiveness_ratio = runMethod @"set_explosiveness_ratio"
+
+set_extents :: Method "set_extents" cls sig => cls -> sig
+set_extents = runMethod @"set_extents"
+
+set_extra_cull_margin ::
+                        Method "set_extra_cull_margin" cls sig => cls -> sig
+set_extra_cull_margin = runMethod @"set_extra_cull_margin"
+
+set_face_meta :: Method "set_face_meta" cls sig => cls -> sig
+set_face_meta = runMethod @"set_face_meta"
+
+set_faces :: Method "set_faces" cls sig => cls -> sig
+set_faces = runMethod @"set_faces"
+
+set_factor :: Method "set_factor" cls sig => cls -> sig
+set_factor = runMethod @"set_factor"
+
+set_fadein_time :: Method "set_fadein_time" cls sig => cls -> sig
+set_fadein_time = runMethod @"set_fadein_time"
+
+set_fadeout_time :: Method "set_fadeout_time" cls sig => cls -> sig
+set_fadeout_time = runMethod @"set_fadeout_time"
+
+set_fallback :: Method "set_fallback" cls sig => cls -> sig
+set_fallback = runMethod @"set_fallback"
+
+set_fallback_environment ::
+                           Method "set_fallback_environment" cls sig => cls -> sig
+set_fallback_environment = runMethod @"set_fallback_environment"
+
+set_favorites :: Method "set_favorites" cls sig => cls -> sig
+set_favorites = runMethod @"set_favorites"
+
+set_feature :: Method "set_feature" cls sig => cls -> sig
+set_feature = runMethod @"set_feature"
+
+set_feedback :: Method "set_feedback" cls sig => cls -> sig
+set_feedback = runMethod @"set_feedback"
+
+set_feedback_active ::
+                      Method "set_feedback_active" cls sig => cls -> sig
+set_feedback_active = runMethod @"set_feedback_active"
+
+set_feedback_delay_ms ::
+                        Method "set_feedback_delay_ms" cls sig => cls -> sig
+set_feedback_delay_ms = runMethod @"set_feedback_delay_ms"
+
+set_feedback_level_db ::
+                        Method "set_feedback_level_db" cls sig => cls -> sig
+set_feedback_level_db = runMethod @"set_feedback_level_db"
+
+set_feedback_lowpass ::
+                       Method "set_feedback_lowpass" cls sig => cls -> sig
+set_feedback_lowpass = runMethod @"set_feedback_lowpass"
+
+set_file :: Method "set_file" cls sig => cls -> sig
+set_file = runMethod @"set_file"
+
+set_filename :: Method "set_filename" cls sig => cls -> sig
+set_filename = runMethod @"set_filename"
+
+set_fill_degrees :: Method "set_fill_degrees" cls sig => cls -> sig
+set_fill_degrees = runMethod @"set_fill_degrees"
+
+set_fill_mode :: Method "set_fill_mode" cls sig => cls -> sig
+set_fill_mode = runMethod @"set_fill_mode"
+
+set_filter_clip :: Method "set_filter_clip" cls sig => cls -> sig
+set_filter_clip = runMethod @"set_filter_clip"
+
+set_filter_enabled ::
+                     Method "set_filter_enabled" cls sig => cls -> sig
+set_filter_enabled = runMethod @"set_filter_enabled"
+
+set_filter_ledge_spans ::
+                         Method "set_filter_ledge_spans" cls sig => cls -> sig
+set_filter_ledge_spans = runMethod @"set_filter_ledge_spans"
+
+set_filter_low_hanging_obstacles ::
+                                   Method "set_filter_low_hanging_obstacles" cls sig => cls -> sig
+set_filter_low_hanging_obstacles
+  = runMethod @"set_filter_low_hanging_obstacles"
+
+set_filter_path :: Method "set_filter_path" cls sig => cls -> sig
+set_filter_path = runMethod @"set_filter_path"
+
+set_filter_walkable_low_height_spans ::
+                                       Method "set_filter_walkable_low_height_spans" cls sig =>
+                                       cls -> sig
+set_filter_walkable_low_height_spans
+  = runMethod @"set_filter_walkable_low_height_spans"
+
+set_filters :: Method "set_filters" cls sig => cls -> sig
+set_filters = runMethod @"set_filters"
+
+set_fixed_column_width ::
+                         Method "set_fixed_column_width" cls sig => cls -> sig
+set_fixed_column_width = runMethod @"set_fixed_column_width"
+
+set_fixed_fps :: Method "set_fixed_fps" cls sig => cls -> sig
+set_fixed_fps = runMethod @"set_fixed_fps"
+
+set_fixed_icon_size ::
+                      Method "set_fixed_icon_size" cls sig => cls -> sig
+set_fixed_icon_size = runMethod @"set_fixed_icon_size"
+
+set_flag :: Method "set_flag" cls sig => cls -> sig
+set_flag = runMethod @"set_flag"
+
+set_flag_x :: Method "set_flag_x" cls sig => cls -> sig
+set_flag_x = runMethod @"set_flag_x"
+
+set_flag_y :: Method "set_flag_y" cls sig => cls -> sig
+set_flag_y = runMethod @"set_flag_y"
+
+set_flag_z :: Method "set_flag_z" cls sig => cls -> sig
+set_flag_z = runMethod @"set_flag_z"
+
+set_flags :: Method "set_flags" cls sig => cls -> sig
+set_flags = runMethod @"set_flags"
+
+set_flat :: Method "set_flat" cls sig => cls -> sig
+set_flat = runMethod @"set_flat"
+
+set_flatness :: Method "set_flatness" cls sig => cls -> sig
+set_flatness = runMethod @"set_flatness"
+
+set_flip_faces :: Method "set_flip_faces" cls sig => cls -> sig
+set_flip_faces = runMethod @"set_flip_faces"
+
+set_flip_h :: Method "set_flip_h" cls sig => cls -> sig
+set_flip_h = runMethod @"set_flip_h"
+
+set_flip_v :: Method "set_flip_v" cls sig => cls -> sig
+set_flip_v = runMethod @"set_flip_v"
+
+set_focus_mode :: Method "set_focus_mode" cls sig => cls -> sig
+set_focus_mode = runMethod @"set_focus_mode"
+
+set_focus_neighbour ::
+                      Method "set_focus_neighbour" cls sig => cls -> sig
+set_focus_neighbour = runMethod @"set_focus_neighbour"
+
+set_focus_next :: Method "set_focus_next" cls sig => cls -> sig
+set_focus_next = runMethod @"set_focus_next"
+
+set_focus_previous ::
+                     Method "set_focus_previous" cls sig => cls -> sig
+set_focus_previous = runMethod @"set_focus_previous"
+
+set_focused_texture ::
+                      Method "set_focused_texture" cls sig => cls -> sig
+set_focused_texture = runMethod @"set_focused_texture"
+
+set_fog_color :: Method "set_fog_color" cls sig => cls -> sig
+set_fog_color = runMethod @"set_fog_color"
+
+set_fog_depth_begin ::
+                      Method "set_fog_depth_begin" cls sig => cls -> sig
+set_fog_depth_begin = runMethod @"set_fog_depth_begin"
+
+set_fog_depth_curve ::
+                      Method "set_fog_depth_curve" cls sig => cls -> sig
+set_fog_depth_curve = runMethod @"set_fog_depth_curve"
+
+set_fog_depth_enabled ::
+                        Method "set_fog_depth_enabled" cls sig => cls -> sig
+set_fog_depth_enabled = runMethod @"set_fog_depth_enabled"
+
+set_fog_enabled :: Method "set_fog_enabled" cls sig => cls -> sig
+set_fog_enabled = runMethod @"set_fog_enabled"
+
+set_fog_height_curve ::
+                       Method "set_fog_height_curve" cls sig => cls -> sig
+set_fog_height_curve = runMethod @"set_fog_height_curve"
+
+set_fog_height_enabled ::
+                         Method "set_fog_height_enabled" cls sig => cls -> sig
+set_fog_height_enabled = runMethod @"set_fog_height_enabled"
+
+set_fog_height_max ::
+                     Method "set_fog_height_max" cls sig => cls -> sig
+set_fog_height_max = runMethod @"set_fog_height_max"
+
+set_fog_height_min ::
+                     Method "set_fog_height_min" cls sig => cls -> sig
+set_fog_height_min = runMethod @"set_fog_height_min"
+
+set_fog_sun_amount ::
+                     Method "set_fog_sun_amount" cls sig => cls -> sig
+set_fog_sun_amount = runMethod @"set_fog_sun_amount"
+
+set_fog_sun_color ::
+                    Method "set_fog_sun_color" cls sig => cls -> sig
+set_fog_sun_color = runMethod @"set_fog_sun_color"
+
+set_fog_transmit_curve ::
+                         Method "set_fog_transmit_curve" cls sig => cls -> sig
+set_fog_transmit_curve = runMethod @"set_fog_transmit_curve"
+
+set_fog_transmit_enabled ::
+                           Method "set_fog_transmit_enabled" cls sig => cls -> sig
+set_fog_transmit_enabled = runMethod @"set_fog_transmit_enabled"
+
+set_follow_smoothing ::
+                       Method "set_follow_smoothing" cls sig => cls -> sig
+set_follow_smoothing = runMethod @"set_follow_smoothing"
+
+set_font :: Method "set_font" cls sig => cls -> sig
+set_font = runMethod @"set_font"
+
+set_font_data :: Method "set_font_data" cls sig => cls -> sig
+set_font_data = runMethod @"set_font_data"
+
+set_font_path :: Method "set_font_path" cls sig => cls -> sig
+set_font_path = runMethod @"set_font_path"
+
+set_force_draw_over_forwarding_enabled ::
+                                         Method "set_force_draw_over_forwarding_enabled" cls sig =>
+                                         cls -> sig
+set_force_draw_over_forwarding_enabled
+  = runMethod @"set_force_draw_over_forwarding_enabled"
+
+set_format :: Method "set_format" cls sig => cls -> sig
+set_format = runMethod @"set_format"
+
+set_fov :: Method "set_fov" cls sig => cls -> sig
+set_fov = runMethod @"set_fov"
+
+set_fps :: Method "set_fps" cls sig => cls -> sig
+set_fps = runMethod @"set_fps"
+
+set_fractional_delta ::
+                       Method "set_fractional_delta" cls sig => cls -> sig
+set_fractional_delta = runMethod @"set_fractional_delta"
+
+set_frame :: Method "set_frame" cls sig => cls -> sig
+set_frame = runMethod @"set_frame"
+
+set_frame_color :: Method "set_frame_color" cls sig => cls -> sig
+set_frame_color = runMethod @"set_frame_color"
+
+set_frame_delay :: Method "set_frame_delay" cls sig => cls -> sig
+set_frame_delay = runMethod @"set_frame_delay"
+
+set_frame_texture ::
+                    Method "set_frame_texture" cls sig => cls -> sig
+set_frame_texture = runMethod @"set_frame_texture"
+
+set_frames :: Method "set_frames" cls sig => cls -> sig
+set_frames = runMethod @"set_frames"
+
+set_friction :: Method "set_friction" cls sig => cls -> sig
+set_friction = runMethod @"set_friction"
+
+set_friction_slip ::
+                    Method "set_friction_slip" cls sig => cls -> sig
+set_friction_slip = runMethod @"set_friction_slip"
+
+set_func :: Method "set_func" cls sig => cls -> sig
+set_func = runMethod @"set_func"
+
+set_function :: Method "set_function" cls sig => cls -> sig
+set_function = runMethod @"set_function"
+
+set_function_scroll ::
+                      Method "set_function_scroll" cls sig => cls -> sig
+set_function_scroll = runMethod @"set_function_scroll"
+
+set_gain :: Method "set_gain" cls sig => cls -> sig
+set_gain = runMethod @"set_gain"
+
+set_gizmo :: Method "set_gizmo" cls sig => cls -> sig
+set_gizmo = runMethod @"set_gizmo"
+
+set_global_canvas_transform ::
+                              Method "set_global_canvas_transform" cls sig => cls -> sig
+set_global_canvas_transform
+  = runMethod @"set_global_canvas_transform"
+
+set_global_constant ::
+                      Method "set_global_constant" cls sig => cls -> sig
+set_global_constant = runMethod @"set_global_constant"
+
+set_global_position ::
+                      Method "set_global_position" cls sig => cls -> sig
+set_global_position = runMethod @"set_global_position"
+
+set_global_rotation ::
+                      Method "set_global_rotation" cls sig => cls -> sig
+set_global_rotation = runMethod @"set_global_rotation"
+
+set_global_rotation_degrees ::
+                              Method "set_global_rotation_degrees" cls sig => cls -> sig
+set_global_rotation_degrees
+  = runMethod @"set_global_rotation_degrees"
+
+set_global_scale :: Method "set_global_scale" cls sig => cls -> sig
+set_global_scale = runMethod @"set_global_scale"
+
+set_global_transform ::
+                       Method "set_global_transform" cls sig => cls -> sig
+set_global_transform = runMethod @"set_global_transform"
+
+set_glow_bicubic_upscale ::
+                           Method "set_glow_bicubic_upscale" cls sig => cls -> sig
+set_glow_bicubic_upscale = runMethod @"set_glow_bicubic_upscale"
+
+set_glow_blend_mode ::
+                      Method "set_glow_blend_mode" cls sig => cls -> sig
+set_glow_blend_mode = runMethod @"set_glow_blend_mode"
+
+set_glow_bloom :: Method "set_glow_bloom" cls sig => cls -> sig
+set_glow_bloom = runMethod @"set_glow_bloom"
+
+set_glow_enabled :: Method "set_glow_enabled" cls sig => cls -> sig
+set_glow_enabled = runMethod @"set_glow_enabled"
+
+set_glow_hdr_bleed_scale ::
+                           Method "set_glow_hdr_bleed_scale" cls sig => cls -> sig
+set_glow_hdr_bleed_scale = runMethod @"set_glow_hdr_bleed_scale"
+
+set_glow_hdr_bleed_threshold ::
+                               Method "set_glow_hdr_bleed_threshold" cls sig => cls -> sig
+set_glow_hdr_bleed_threshold
+  = runMethod @"set_glow_hdr_bleed_threshold"
+
+set_glow_intensity ::
+                     Method "set_glow_intensity" cls sig => cls -> sig
+set_glow_intensity = runMethod @"set_glow_intensity"
+
+set_glow_level :: Method "set_glow_level" cls sig => cls -> sig
+set_glow_level = runMethod @"set_glow_level"
+
+set_glow_strength ::
+                    Method "set_glow_strength" cls sig => cls -> sig
+set_glow_strength = runMethod @"set_glow_strength"
+
+set_gradient :: Method "set_gradient" cls sig => cls -> sig
+set_gradient = runMethod @"set_gradient"
+
+set_graph_offset :: Method "set_graph_offset" cls sig => cls -> sig
+set_graph_offset = runMethod @"set_graph_offset"
+
+set_gravity :: Method "set_gravity" cls sig => cls -> sig
+set_gravity = runMethod @"set_gravity"
+
+set_gravity_distance_scale ::
+                             Method "set_gravity_distance_scale" cls sig => cls -> sig
+set_gravity_distance_scale
+  = runMethod @"set_gravity_distance_scale"
+
+set_gravity_is_point ::
+                       Method "set_gravity_is_point" cls sig => cls -> sig
+set_gravity_is_point = runMethod @"set_gravity_is_point"
+
+set_gravity_scale ::
+                    Method "set_gravity_scale" cls sig => cls -> sig
+set_gravity_scale = runMethod @"set_gravity_scale"
+
+set_gravity_vector ::
+                     Method "set_gravity_vector" cls sig => cls -> sig
+set_gravity_vector = runMethod @"set_gravity_vector"
+
+set_grid_radius :: Method "set_grid_radius" cls sig => cls -> sig
+set_grid_radius = runMethod @"set_grid_radius"
+
+set_ground_bottom_color ::
+                          Method "set_ground_bottom_color" cls sig => cls -> sig
+set_ground_bottom_color = runMethod @"set_ground_bottom_color"
+
+set_ground_curve :: Method "set_ground_curve" cls sig => cls -> sig
+set_ground_curve = runMethod @"set_ground_curve"
+
+set_ground_energy ::
+                    Method "set_ground_energy" cls sig => cls -> sig
+set_ground_energy = runMethod @"set_ground_energy"
+
+set_ground_horizon_color ::
+                           Method "set_ground_horizon_color" cls sig => cls -> sig
+set_ground_horizon_color = runMethod @"set_ground_horizon_color"
+
+set_group :: Method "set_group" cls sig => cls -> sig
+set_group = runMethod @"set_group"
+
+set_group_flags :: Method "set_group_flags" cls sig => cls -> sig
+set_group_flags = runMethod @"set_group_flags"
+
+set_group_name :: Method "set_group_name" cls sig => cls -> sig
+set_group_name = runMethod @"set_group_name"
+
+set_grow :: Method "set_grow" cls sig => cls -> sig
+set_grow = runMethod @"set_grow"
+
+set_grow_begin :: Method "set_grow_begin" cls sig => cls -> sig
+set_grow_begin = runMethod @"set_grow_begin"
+
+set_grow_enabled :: Method "set_grow_enabled" cls sig => cls -> sig
+set_grow_enabled = runMethod @"set_grow_enabled"
+
+set_grow_end :: Method "set_grow_end" cls sig => cls -> sig
+set_grow_end = runMethod @"set_grow_end"
+
+set_h_axis_stretch_mode ::
+                          Method "set_h_axis_stretch_mode" cls sig => cls -> sig
+set_h_axis_stretch_mode = runMethod @"set_h_axis_stretch_mode"
+
+set_h_drag_enabled ::
+                     Method "set_h_drag_enabled" cls sig => cls -> sig
+set_h_drag_enabled = runMethod @"set_h_drag_enabled"
+
+set_h_frames :: Method "set_h_frames" cls sig => cls -> sig
+set_h_frames = runMethod @"set_h_frames"
+
+set_h_grow_direction ::
+                       Method "set_h_grow_direction" cls sig => cls -> sig
+set_h_grow_direction = runMethod @"set_h_grow_direction"
+
+set_h_offset :: Method "set_h_offset" cls sig => cls -> sig
+set_h_offset = runMethod @"set_h_offset"
+
+set_h_scroll :: Method "set_h_scroll" cls sig => cls -> sig
+set_h_scroll = runMethod @"set_h_scroll"
+
+set_h_size_flags :: Method "set_h_size_flags" cls sig => cls -> sig
+set_h_size_flags = runMethod @"set_h_size_flags"
+
+set_half_offset :: Method "set_half_offset" cls sig => cls -> sig
+set_half_offset = runMethod @"set_half_offset"
+
+set_handle :: Method "set_handle" cls sig => cls -> sig
+set_handle = runMethod @"set_handle"
+
+set_hdr :: Method "set_hdr" cls sig => cls -> sig
+set_hdr = runMethod @"set_hdr"
+
+set_height :: Method "set_height" cls sig => cls -> sig
+set_height = runMethod @"set_height"
+
+set_hframes :: Method "set_hframes" cls sig => cls -> sig
+set_hframes = runMethod @"set_hframes"
+
+set_hidden :: Method "set_hidden" cls sig => cls -> sig
+set_hidden = runMethod @"set_hidden"
+
+set_hide_folding :: Method "set_hide_folding" cls sig => cls -> sig
+set_hide_folding = runMethod @"set_hide_folding"
+
+set_hide_on_checkable_item_selection ::
+                                       Method "set_hide_on_checkable_item_selection" cls sig =>
+                                       cls -> sig
+set_hide_on_checkable_item_selection
+  = runMethod @"set_hide_on_checkable_item_selection"
+
+set_hide_on_item_selection ::
+                             Method "set_hide_on_item_selection" cls sig => cls -> sig
+set_hide_on_item_selection
+  = runMethod @"set_hide_on_item_selection"
+
+set_hide_on_ok :: Method "set_hide_on_ok" cls sig => cls -> sig
+set_hide_on_ok = runMethod @"set_hide_on_ok"
+
+set_hide_on_state_item_selection ::
+                                   Method "set_hide_on_state_item_selection" cls sig => cls -> sig
+set_hide_on_state_item_selection
+  = runMethod @"set_hide_on_state_item_selection"
+
+set_hide_on_window_lose_focus ::
+                                Method "set_hide_on_window_lose_focus" cls sig => cls -> sig
+set_hide_on_window_lose_focus
+  = runMethod @"set_hide_on_window_lose_focus"
+
+set_hide_root :: Method "set_hide_root" cls sig => cls -> sig
+set_hide_root = runMethod @"set_hide_root"
+
+set_hiding_enabled ::
+                     Method "set_hiding_enabled" cls sig => cls -> sig
+set_hiding_enabled = runMethod @"set_hiding_enabled"
+
+set_highlight_all_occurrences ::
+                                Method "set_highlight_all_occurrences" cls sig => cls -> sig
+set_highlight_all_occurrences
+  = runMethod @"set_highlight_all_occurrences"
+
+set_highlight_current_line ::
+                             Method "set_highlight_current_line" cls sig => cls -> sig
+set_highlight_current_line
+  = runMethod @"set_highlight_current_line"
+
+set_hinting :: Method "set_hinting" cls sig => cls -> sig
+set_hinting = runMethod @"set_hinting"
+
+set_hover_texture ::
+                    Method "set_hover_texture" cls sig => cls -> sig
+set_hover_texture = runMethod @"set_hover_texture"
+
+set_hpf :: Method "set_hpf" cls sig => cls -> sig
+set_hpf = runMethod @"set_hpf"
+
+set_icon :: Method "set_icon" cls sig => cls -> sig
+set_icon = runMethod @"set_icon"
+
+set_icon_max_width ::
+                     Method "set_icon_max_width" cls sig => cls -> sig
+set_icon_max_width = runMethod @"set_icon_max_width"
+
+set_icon_mode :: Method "set_icon_mode" cls sig => cls -> sig
+set_icon_mode = runMethod @"set_icon_mode"
+
+set_icon_region :: Method "set_icon_region" cls sig => cls -> sig
+set_icon_region = runMethod @"set_icon_region"
+
+set_icon_scale :: Method "set_icon_scale" cls sig => cls -> sig
+set_icon_scale = runMethod @"set_icon_scale"
+
+set_identity :: Method "set_identity" cls sig => cls -> sig
+set_identity = runMethod @"set_identity"
+
+set_igd_control_url ::
+                      Method "set_igd_control_url" cls sig => cls -> sig
+set_igd_control_url = runMethod @"set_igd_control_url"
+
+set_igd_our_addr :: Method "set_igd_our_addr" cls sig => cls -> sig
+set_igd_our_addr = runMethod @"set_igd_our_addr"
+
+set_igd_service_type ::
+                       Method "set_igd_service_type" cls sig => cls -> sig
+set_igd_service_type = runMethod @"set_igd_service_type"
+
+set_igd_status :: Method "set_igd_status" cls sig => cls -> sig
+set_igd_status = runMethod @"set_igd_status"
+
+set_ignore_camera_zoom ::
+                         Method "set_ignore_camera_zoom" cls sig => cls -> sig
+set_ignore_camera_zoom = runMethod @"set_ignore_camera_zoom"
+
+set_ignore_transform_notification ::
+                                    Method "set_ignore_transform_notification" cls sig => cls -> sig
+set_ignore_transform_notification
+  = runMethod @"set_ignore_transform_notification"
+
+set_image_path :: Method "set_image_path" cls sig => cls -> sig
+set_image_path = runMethod @"set_image_path"
+
+set_ime_position :: Method "set_ime_position" cls sig => cls -> sig
+set_ime_position = runMethod @"set_ime_position"
+
+set_index :: Method "set_index" cls sig => cls -> sig
+set_index = runMethod @"set_index"
+
+set_indexed :: Method "set_indexed" cls sig => cls -> sig
+set_indexed = runMethod @"set_indexed"
+
+set_inertia :: Method "set_inertia" cls sig => cls -> sig
+set_inertia = runMethod @"set_inertia"
+
+set_initial_offset ::
+                     Method "set_initial_offset" cls sig => cls -> sig
+set_initial_offset = runMethod @"set_initial_offset"
+
+set_initial_value ::
+                    Method "set_initial_value" cls sig => cls -> sig
+set_initial_value = runMethod @"set_initial_value"
+
+set_inner_radius :: Method "set_inner_radius" cls sig => cls -> sig
+set_inner_radius = runMethod @"set_inner_radius"
+
+set_input_as_auto_advance ::
+                            Method "set_input_as_auto_advance" cls sig => cls -> sig
+set_input_as_auto_advance = runMethod @"set_input_as_auto_advance"
+
+set_input_as_handled ::
+                       Method "set_input_as_handled" cls sig => cls -> sig
+set_input_as_handled = runMethod @"set_input_as_handled"
+
+set_input_buffer_max_size ::
+                            Method "set_input_buffer_max_size" cls sig => cls -> sig
+set_input_buffer_max_size = runMethod @"set_input_buffer_max_size"
+
+set_input_caption ::
+                    Method "set_input_caption" cls sig => cls -> sig
+set_input_caption = runMethod @"set_input_caption"
+
+set_input_event_forwarding_always_enabled ::
+                                            Method "set_input_event_forwarding_always_enabled" cls
+                                              sig =>
+                                            cls -> sig
+set_input_event_forwarding_always_enabled
+  = runMethod @"set_input_event_forwarding_always_enabled"
+
+set_input_name :: Method "set_input_name" cls sig => cls -> sig
+set_input_name = runMethod @"set_input_name"
+
+set_input_port_default_value ::
+                               Method "set_input_port_default_value" cls sig => cls -> sig
+set_input_port_default_value
+  = runMethod @"set_input_port_default_value"
+
+set_instance :: Method "set_instance" cls sig => cls -> sig
+set_instance = runMethod @"set_instance"
+
+set_instance_base_type ::
+                         Method "set_instance_base_type" cls sig => cls -> sig
+set_instance_base_type = runMethod @"set_instance_base_type"
+
+set_instance_color ::
+                     Method "set_instance_color" cls sig => cls -> sig
+set_instance_color = runMethod @"set_instance_color"
+
+set_instance_count ::
+                     Method "set_instance_count" cls sig => cls -> sig
+set_instance_count = runMethod @"set_instance_count"
+
+set_instance_custom_data ::
+                           Method "set_instance_custom_data" cls sig => cls -> sig
+set_instance_custom_data = runMethod @"set_instance_custom_data"
+
+set_instance_transform ::
+                         Method "set_instance_transform" cls sig => cls -> sig
+set_instance_transform = runMethod @"set_instance_transform"
+
+set_intensity :: Method "set_intensity" cls sig => cls -> sig
+set_intensity = runMethod @"set_intensity"
+
+set_interior :: Method "set_interior" cls sig => cls -> sig
+set_interior = runMethod @"set_interior"
+
+set_interior_ambient ::
+                       Method "set_interior_ambient" cls sig => cls -> sig
+set_interior_ambient = runMethod @"set_interior_ambient"
+
+set_interior_ambient_energy ::
+                              Method "set_interior_ambient_energy" cls sig => cls -> sig
+set_interior_ambient_energy
+  = runMethod @"set_interior_ambient_energy"
+
+set_interior_ambient_probe_contribution ::
+                                          Method "set_interior_ambient_probe_contribution" cls
+                                            sig =>
+                                          cls -> sig
+set_interior_ambient_probe_contribution
+  = runMethod @"set_interior_ambient_probe_contribution"
+
+set_interpolation ::
+                    Method "set_interpolation" cls sig => cls -> sig
+set_interpolation = runMethod @"set_interpolation"
+
+set_interpolation_enabled ::
+                            Method "set_interpolation_enabled" cls sig => cls -> sig
+set_interpolation_enabled = runMethod @"set_interpolation_enabled"
+
+set_invert :: Method "set_invert" cls sig => cls -> sig
+set_invert = runMethod @"set_invert"
+
+set_invert_border ::
+                    Method "set_invert_border" cls sig => cls -> sig
+set_invert_border = runMethod @"set_invert_border"
+
+set_invert_faces :: Method "set_invert_faces" cls sig => cls -> sig
+set_invert_faces = runMethod @"set_invert_faces"
+
+set_iod :: Method "set_iod" cls sig => cls -> sig
+set_iod = runMethod @"set_iod"
+
+set_is_hemisphere ::
+                    Method "set_is_hemisphere" cls sig => cls -> sig
+set_is_hemisphere = runMethod @"set_is_hemisphere"
+
+set_is_initialized ::
+                     Method "set_is_initialized" cls sig => cls -> sig
+set_is_initialized = runMethod @"set_is_initialized"
+
+set_is_primary :: Method "set_is_primary" cls sig => cls -> sig
+set_is_primary = runMethod @"set_is_primary"
+
+set_item_accelerator ::
+                       Method "set_item_accelerator" cls sig => cls -> sig
+set_item_accelerator = runMethod @"set_item_accelerator"
+
+set_item_as_checkable ::
+                        Method "set_item_as_checkable" cls sig => cls -> sig
+set_item_as_checkable = runMethod @"set_item_as_checkable"
+
+set_item_as_radio_checkable ::
+                              Method "set_item_as_radio_checkable" cls sig => cls -> sig
+set_item_as_radio_checkable
+  = runMethod @"set_item_as_radio_checkable"
+
+set_item_as_separator ::
+                        Method "set_item_as_separator" cls sig => cls -> sig
+set_item_as_separator = runMethod @"set_item_as_separator"
+
+set_item_checked :: Method "set_item_checked" cls sig => cls -> sig
+set_item_checked = runMethod @"set_item_checked"
+
+set_item_cull_mask ::
+                     Method "set_item_cull_mask" cls sig => cls -> sig
+set_item_cull_mask = runMethod @"set_item_cull_mask"
+
+set_item_custom_bg_color ::
+                           Method "set_item_custom_bg_color" cls sig => cls -> sig
+set_item_custom_bg_color = runMethod @"set_item_custom_bg_color"
+
+set_item_custom_fg_color ::
+                           Method "set_item_custom_fg_color" cls sig => cls -> sig
+set_item_custom_fg_color = runMethod @"set_item_custom_fg_color"
+
+set_item_disabled ::
+                    Method "set_item_disabled" cls sig => cls -> sig
+set_item_disabled = runMethod @"set_item_disabled"
+
+set_item_icon :: Method "set_item_icon" cls sig => cls -> sig
+set_item_icon = runMethod @"set_item_icon"
+
+set_item_icon_modulate ::
+                         Method "set_item_icon_modulate" cls sig => cls -> sig
+set_item_icon_modulate = runMethod @"set_item_icon_modulate"
+
+set_item_icon_region ::
+                       Method "set_item_icon_region" cls sig => cls -> sig
+set_item_icon_region = runMethod @"set_item_icon_region"
+
+set_item_id :: Method "set_item_id" cls sig => cls -> sig
+set_item_id = runMethod @"set_item_id"
+
+set_item_mesh :: Method "set_item_mesh" cls sig => cls -> sig
+set_item_mesh = runMethod @"set_item_mesh"
+
+set_item_metadata ::
+                    Method "set_item_metadata" cls sig => cls -> sig
+set_item_metadata = runMethod @"set_item_metadata"
+
+set_item_multistate ::
+                      Method "set_item_multistate" cls sig => cls -> sig
+set_item_multistate = runMethod @"set_item_multistate"
+
+set_item_name :: Method "set_item_name" cls sig => cls -> sig
+set_item_name = runMethod @"set_item_name"
+
+set_item_navmesh :: Method "set_item_navmesh" cls sig => cls -> sig
+set_item_navmesh = runMethod @"set_item_navmesh"
+
+set_item_preview :: Method "set_item_preview" cls sig => cls -> sig
+set_item_preview = runMethod @"set_item_preview"
+
+set_item_selectable ::
+                      Method "set_item_selectable" cls sig => cls -> sig
+set_item_selectable = runMethod @"set_item_selectable"
+
+set_item_shadow_cull_mask ::
+                            Method "set_item_shadow_cull_mask" cls sig => cls -> sig
+set_item_shadow_cull_mask = runMethod @"set_item_shadow_cull_mask"
+
+set_item_shapes :: Method "set_item_shapes" cls sig => cls -> sig
+set_item_shapes = runMethod @"set_item_shapes"
+
+set_item_shortcut ::
+                    Method "set_item_shortcut" cls sig => cls -> sig
+set_item_shortcut = runMethod @"set_item_shortcut"
+
+set_item_shortcut_disabled ::
+                             Method "set_item_shortcut_disabled" cls sig => cls -> sig
+set_item_shortcut_disabled
+  = runMethod @"set_item_shortcut_disabled"
+
+set_item_submenu :: Method "set_item_submenu" cls sig => cls -> sig
+set_item_submenu = runMethod @"set_item_submenu"
+
+set_item_text :: Method "set_item_text" cls sig => cls -> sig
+set_item_text = runMethod @"set_item_text"
+
+set_item_tooltip :: Method "set_item_tooltip" cls sig => cls -> sig
+set_item_tooltip = runMethod @"set_item_tooltip"
+
+set_item_tooltip_enabled ::
+                           Method "set_item_tooltip_enabled" cls sig => cls -> sig
+set_item_tooltip_enabled = runMethod @"set_item_tooltip_enabled"
+
+set_iterations_per_second ::
+                            Method "set_iterations_per_second" cls sig => cls -> sig
+set_iterations_per_second = runMethod @"set_iterations_per_second"
+
+set_joint_mode :: Method "set_joint_mode" cls sig => cls -> sig
+set_joint_mode = runMethod @"set_joint_mode"
+
+set_joint_offset :: Method "set_joint_offset" cls sig => cls -> sig
+set_joint_offset = runMethod @"set_joint_offset"
+
+set_joint_type :: Method "set_joint_type" cls sig => cls -> sig
+set_joint_type = runMethod @"set_joint_type"
+
+set_k1 :: Method "set_k1" cls sig => cls -> sig
+set_k1 = runMethod @"set_k1"
+
+set_k2 :: Method "set_k2" cls sig => cls -> sig
+set_k2 = runMethod @"set_k2"
+
+set_keep_3d_linear ::
+                     Method "set_keep_3d_linear" cls sig => cls -> sig
+set_keep_3d_linear = runMethod @"set_keep_3d_linear"
+
+set_keep_aspect_mode ::
+                       Method "set_keep_aspect_mode" cls sig => cls -> sig
+set_keep_aspect_mode = runMethod @"set_keep_aspect_mode"
+
+set_keep_hf_hz :: Method "set_keep_hf_hz" cls sig => cls -> sig
+set_keep_hf_hz = runMethod @"set_keep_hf_hz"
+
+set_keep_screen_on ::
+                     Method "set_keep_screen_on" cls sig => cls -> sig
+set_keep_screen_on = runMethod @"set_keep_screen_on"
+
+set_keying :: Method "set_keying" cls sig => cls -> sig
+set_keying = runMethod @"set_keying"
+
+set_label :: Method "set_label" cls sig => cls -> sig
+set_label = runMethod @"set_label"
+
+set_lacunarity :: Method "set_lacunarity" cls sig => cls -> sig
+set_lacunarity = runMethod @"set_lacunarity"
+
+set_layer :: Method "set_layer" cls sig => cls -> sig
+set_layer = runMethod @"set_layer"
+
+set_layer_data :: Method "set_layer_data" cls sig => cls -> sig
+set_layer_data = runMethod @"set_layer_data"
+
+set_layer_mask :: Method "set_layer_mask" cls sig => cls -> sig
+set_layer_mask = runMethod @"set_layer_mask"
+
+set_layer_mask_bit ::
+                     Method "set_layer_mask_bit" cls sig => cls -> sig
+set_layer_mask_bit = runMethod @"set_layer_mask_bit"
+
+set_layer_range_max ::
+                      Method "set_layer_range_max" cls sig => cls -> sig
+set_layer_range_max = runMethod @"set_layer_range_max"
+
+set_layer_range_min ::
+                      Method "set_layer_range_min" cls sig => cls -> sig
+set_layer_range_min = runMethod @"set_layer_range_min"
+
+set_left_to_right ::
+                    Method "set_left_to_right" cls sig => cls -> sig
+set_left_to_right = runMethod @"set_left_to_right"
+
+set_length :: Method "set_length" cls sig => cls -> sig
+set_length = runMethod @"set_length"
+
+set_library :: Method "set_library" cls sig => cls -> sig
+set_library = runMethod @"set_library"
+
+set_lifetime :: Method "set_lifetime" cls sig => cls -> sig
+set_lifetime = runMethod @"set_lifetime"
+
+set_light_data :: Method "set_light_data" cls sig => cls -> sig
+set_light_data = runMethod @"set_light_data"
+
+set_light_mask :: Method "set_light_mask" cls sig => cls -> sig
+set_light_mask = runMethod @"set_light_mask"
+
+set_light_mode :: Method "set_light_mode" cls sig => cls -> sig
+set_light_mode = runMethod @"set_light_mode"
+
+set_lightmap_size_hint ::
+                         Method "set_lightmap_size_hint" cls sig => cls -> sig
+set_lightmap_size_hint = runMethod @"set_lightmap_size_hint"
+
+set_limit :: Method "set_limit" cls sig => cls -> sig
+set_limit = runMethod @"set_limit"
+
+set_limit_begin :: Method "set_limit_begin" cls sig => cls -> sig
+set_limit_begin = runMethod @"set_limit_begin"
+
+set_limit_drawing_enabled ::
+                            Method "set_limit_drawing_enabled" cls sig => cls -> sig
+set_limit_drawing_enabled = runMethod @"set_limit_drawing_enabled"
+
+set_limit_end :: Method "set_limit_end" cls sig => cls -> sig
+set_limit_end = runMethod @"set_limit_end"
+
+set_limit_smoothing_enabled ::
+                              Method "set_limit_smoothing_enabled" cls sig => cls -> sig
+set_limit_smoothing_enabled
+  = runMethod @"set_limit_smoothing_enabled"
+
+set_line_as_hidden ::
+                     Method "set_line_as_hidden" cls sig => cls -> sig
+set_line_as_hidden = runMethod @"set_line_as_hidden"
+
+set_line_width :: Method "set_line_width" cls sig => cls -> sig
+set_line_width = runMethod @"set_line_width"
+
+set_linear_damp :: Method "set_linear_damp" cls sig => cls -> sig
+set_linear_damp = runMethod @"set_linear_damp"
+
+set_linear_stiffness ::
+                       Method "set_linear_stiffness" cls sig => cls -> sig
+set_linear_stiffness = runMethod @"set_linear_stiffness"
+
+set_linear_velocity ::
+                      Method "set_linear_velocity" cls sig => cls -> sig
+set_linear_velocity = runMethod @"set_linear_velocity"
+
+set_lines_skipped ::
+                    Method "set_lines_skipped" cls sig => cls -> sig
+set_lines_skipped = runMethod @"set_lines_skipped"
+
+set_load_once :: Method "set_load_once" cls sig => cls -> sig
+set_load_once = runMethod @"set_load_once"
+
+set_local_to_scene ::
+                     Method "set_local_to_scene" cls sig => cls -> sig
+set_local_to_scene = runMethod @"set_local_to_scene"
+
+set_locale :: Method "set_locale" cls sig => cls -> sig
+set_locale = runMethod @"set_locale"
+
+set_lod_max_distance ::
+                       Method "set_lod_max_distance" cls sig => cls -> sig
+set_lod_max_distance = runMethod @"set_lod_max_distance"
+
+set_lod_max_hysteresis ::
+                         Method "set_lod_max_hysteresis" cls sig => cls -> sig
+set_lod_max_hysteresis = runMethod @"set_lod_max_hysteresis"
+
+set_lod_min_distance ::
+                       Method "set_lod_min_distance" cls sig => cls -> sig
+set_lod_min_distance = runMethod @"set_lod_min_distance"
+
+set_lod_min_hysteresis ::
+                         Method "set_lod_min_hysteresis" cls sig => cls -> sig
+set_lod_min_hysteresis = runMethod @"set_lod_min_hysteresis"
+
+set_lookahead :: Method "set_lookahead" cls sig => cls -> sig
+set_lookahead = runMethod @"set_lookahead"
+
+set_loop :: Method "set_loop" cls sig => cls -> sig
+set_loop = runMethod @"set_loop"
+
+set_loop_begin :: Method "set_loop_begin" cls sig => cls -> sig
+set_loop_begin = runMethod @"set_loop_begin"
+
+set_loop_end :: Method "set_loop_end" cls sig => cls -> sig
+set_loop_end = runMethod @"set_loop_end"
+
+set_loop_mode :: Method "set_loop_mode" cls sig => cls -> sig
+set_loop_mode = runMethod @"set_loop_mode"
+
+set_loop_offset :: Method "set_loop_offset" cls sig => cls -> sig
+set_loop_offset = runMethod @"set_loop_offset"
+
+set_lossy_storage_quality ::
+                            Method "set_lossy_storage_quality" cls sig => cls -> sig
+set_lossy_storage_quality = runMethod @"set_lossy_storage_quality"
+
+set_low_processor_usage_mode ::
+                               Method "set_low_processor_usage_mode" cls sig => cls -> sig
+set_low_processor_usage_mode
+  = runMethod @"set_low_processor_usage_mode"
+
+set_magnet_position ::
+                      Method "set_magnet_position" cls sig => cls -> sig
+set_magnet_position = runMethod @"set_magnet_position"
+
+set_margin :: Method "set_margin" cls sig => cls -> sig
+set_margin = runMethod @"set_margin"
+
+set_margin_drawing_enabled ::
+                             Method "set_margin_drawing_enabled" cls sig => cls -> sig
+set_margin_drawing_enabled
+  = runMethod @"set_margin_drawing_enabled"
+
+set_margin_size :: Method "set_margin_size" cls sig => cls -> sig
+set_margin_size = runMethod @"set_margin_size"
+
+set_margins_preset ::
+                     Method "set_margins_preset" cls sig => cls -> sig
+set_margins_preset = runMethod @"set_margins_preset"
+
+set_mass :: Method "set_mass" cls sig => cls -> sig
+set_mass = runMethod @"set_mass"
+
+set_master_player ::
+                    Method "set_master_player" cls sig => cls -> sig
+set_master_player = runMethod @"set_master_player"
+
+set_material :: Method "set_material" cls sig => cls -> sig
+set_material = runMethod @"set_material"
+
+set_material_override ::
+                        Method "set_material_override" cls sig => cls -> sig
+set_material_override = runMethod @"set_material_override"
+
+set_math_constant ::
+                    Method "set_math_constant" cls sig => cls -> sig
+set_math_constant = runMethod @"set_math_constant"
+
+set_max :: Method "set_max" cls sig => cls -> sig
+set_max = runMethod @"set_max"
+
+set_max_columns :: Method "set_max_columns" cls sig => cls -> sig
+set_max_columns = runMethod @"set_max_columns"
+
+set_max_contacts_reported ::
+                            Method "set_max_contacts_reported" cls sig => cls -> sig
+set_max_contacts_reported = runMethod @"set_max_contacts_reported"
+
+set_max_db :: Method "set_max_db" cls sig => cls -> sig
+set_max_db = runMethod @"set_max_db"
+
+set_max_distance :: Method "set_max_distance" cls sig => cls -> sig
+set_max_distance = runMethod @"set_max_distance"
+
+set_max_iterations ::
+                     Method "set_max_iterations" cls sig => cls -> sig
+set_max_iterations = runMethod @"set_max_iterations"
+
+set_max_length :: Method "set_max_length" cls sig => cls -> sig
+set_max_length = runMethod @"set_max_length"
+
+set_max_lines_visible ::
+                        Method "set_max_lines_visible" cls sig => cls -> sig
+set_max_lines_visible = runMethod @"set_max_lines_visible"
+
+set_max_redirects ::
+                    Method "set_max_redirects" cls sig => cls -> sig
+set_max_redirects = runMethod @"set_max_redirects"
+
+set_max_space :: Method "set_max_space" cls sig => cls -> sig
+set_max_space = runMethod @"set_max_space"
+
+set_max_text_lines ::
+                     Method "set_max_text_lines" cls sig => cls -> sig
+set_max_text_lines = runMethod @"set_max_text_lines"
+
+set_max_value :: Method "set_max_value" cls sig => cls -> sig
+set_max_value = runMethod @"set_max_value"
+
+set_mesh :: Method "set_mesh" cls sig => cls -> sig
+set_mesh = runMethod @"set_mesh"
+
+set_mesh_library :: Method "set_mesh_library" cls sig => cls -> sig
+set_mesh_library = runMethod @"set_mesh_library"
+
+set_message_translation ::
+                          Method "set_message_translation" cls sig => cls -> sig
+set_message_translation = runMethod @"set_message_translation"
+
+set_meta :: Method "set_meta" cls sig => cls -> sig
+set_meta = runMethod @"set_meta"
+
+set_meta_underline ::
+                     Method "set_meta_underline" cls sig => cls -> sig
+set_meta_underline = runMethod @"set_meta_underline"
+
+set_metadata :: Method "set_metadata" cls sig => cls -> sig
+set_metadata = runMethod @"set_metadata"
+
+set_metakey :: Method "set_metakey" cls sig => cls -> sig
+set_metakey = runMethod @"set_metakey"
+
+set_metallic :: Method "set_metallic" cls sig => cls -> sig
+set_metallic = runMethod @"set_metallic"
+
+set_metallic_texture_channel ::
+                               Method "set_metallic_texture_channel" cls sig => cls -> sig
+set_metallic_texture_channel
+  = runMethod @"set_metallic_texture_channel"
+
+set_mid_height :: Method "set_mid_height" cls sig => cls -> sig
+set_mid_height = runMethod @"set_mid_height"
+
+set_min :: Method "set_min" cls sig => cls -> sig
+set_min = runMethod @"set_min"
+
+set_min_distance :: Method "set_min_distance" cls sig => cls -> sig
+set_min_distance = runMethod @"set_min_distance"
+
+set_min_space :: Method "set_min_space" cls sig => cls -> sig
+set_min_space = runMethod @"set_min_space"
+
+set_min_value :: Method "set_min_value" cls sig => cls -> sig
+set_min_value = runMethod @"set_min_value"
+
+set_mirroring :: Method "set_mirroring" cls sig => cls -> sig
+set_mirroring = runMethod @"set_mirroring"
+
+set_mix :: Method "set_mix" cls sig => cls -> sig
+set_mix = runMethod @"set_mix"
+
+set_mix_mode :: Method "set_mix_mode" cls sig => cls -> sig
+set_mix_mode = runMethod @"set_mix_mode"
+
+set_mix_rate :: Method "set_mix_rate" cls sig => cls -> sig
+set_mix_rate = runMethod @"set_mix_rate"
+
+set_mix_target :: Method "set_mix_target" cls sig => cls -> sig
+set_mix_target = runMethod @"set_mix_target"
+
+set_mode :: Method "set_mode" cls sig => cls -> sig
+set_mode = runMethod @"set_mode"
+
+set_mode_overrides_title ::
+                           Method "set_mode_overrides_title" cls sig => cls -> sig
+set_mode_overrides_title = runMethod @"set_mode_overrides_title"
+
+set_modulate :: Method "set_modulate" cls sig => cls -> sig
+set_modulate = runMethod @"set_modulate"
+
+set_monitorable :: Method "set_monitorable" cls sig => cls -> sig
+set_monitorable = runMethod @"set_monitorable"
+
+set_monitoring :: Method "set_monitoring" cls sig => cls -> sig
+set_monitoring = runMethod @"set_monitoring"
+
+set_motion :: Method "set_motion" cls sig => cls -> sig
+set_motion = runMethod @"set_motion"
+
+set_motion_offset ::
+                    Method "set_motion_offset" cls sig => cls -> sig
+set_motion_offset = runMethod @"set_motion_offset"
+
+set_motion_scale :: Method "set_motion_scale" cls sig => cls -> sig
+set_motion_scale = runMethod @"set_motion_scale"
+
+set_mouse_filter :: Method "set_mouse_filter" cls sig => cls -> sig
+set_mouse_filter = runMethod @"set_mouse_filter"
+
+set_mouse_mode :: Method "set_mouse_mode" cls sig => cls -> sig
+set_mouse_mode = runMethod @"set_mouse_mode"
+
+set_msaa :: Method "set_msaa" cls sig => cls -> sig
+set_msaa = runMethod @"set_msaa"
+
+set_multimesh :: Method "set_multimesh" cls sig => cls -> sig
+set_multimesh = runMethod @"set_multimesh"
+
+set_multiplayer :: Method "set_multiplayer" cls sig => cls -> sig
+set_multiplayer = runMethod @"set_multiplayer"
+
+set_multiplayer_poll_enabled ::
+                               Method "set_multiplayer_poll_enabled" cls sig => cls -> sig
+set_multiplayer_poll_enabled
+  = runMethod @"set_multiplayer_poll_enabled"
+
+set_name :: Method "set_name" cls sig => cls -> sig
+set_name = runMethod @"set_name"
+
+set_navigation_mesh ::
+                      Method "set_navigation_mesh" cls sig => cls -> sig
+set_navigation_mesh = runMethod @"set_navigation_mesh"
+
+set_navigation_polygon ::
+                         Method "set_navigation_polygon" cls sig => cls -> sig
+set_navigation_polygon = runMethod @"set_navigation_polygon"
+
+set_negative :: Method "set_negative" cls sig => cls -> sig
+set_negative = runMethod @"set_negative"
+
+set_network_master ::
+                     Method "set_network_master" cls sig => cls -> sig
+set_network_master = runMethod @"set_network_master"
+
+set_network_peer :: Method "set_network_peer" cls sig => cls -> sig
+set_network_peer = runMethod @"set_network_peer"
+
+set_next_pass :: Method "set_next_pass" cls sig => cls -> sig
+set_next_pass = runMethod @"set_next_pass"
+
+set_nine_patch_stretch ::
+                         Method "set_nine_patch_stretch" cls sig => cls -> sig
+set_nine_patch_stretch = runMethod @"set_nine_patch_stretch"
+
+set_no_delay :: Method "set_no_delay" cls sig => cls -> sig
+set_no_delay = runMethod @"set_no_delay"
+
+set_node_a :: Method "set_node_a" cls sig => cls -> sig
+set_node_a = runMethod @"set_node_a"
+
+set_node_b :: Method "set_node_b" cls sig => cls -> sig
+set_node_b = runMethod @"set_node_b"
+
+set_node_path :: Method "set_node_path" cls sig => cls -> sig
+set_node_path = runMethod @"set_node_path"
+
+set_node_position ::
+                    Method "set_node_position" cls sig => cls -> sig
+set_node_position = runMethod @"set_node_position"
+
+set_noise :: Method "set_noise" cls sig => cls -> sig
+set_noise = runMethod @"set_noise"
+
+set_normal :: Method "set_normal" cls sig => cls -> sig
+set_normal = runMethod @"set_normal"
+
+set_normal_bias :: Method "set_normal_bias" cls sig => cls -> sig
+set_normal_bias = runMethod @"set_normal_bias"
+
+set_normal_map :: Method "set_normal_map" cls sig => cls -> sig
+set_normal_map = runMethod @"set_normal_map"
+
+set_normal_scale :: Method "set_normal_scale" cls sig => cls -> sig
+set_normal_scale = runMethod @"set_normal_scale"
+
+set_normal_texture ::
+                     Method "set_normal_texture" cls sig => cls -> sig
+set_normal_texture = runMethod @"set_normal_texture"
+
+set_normalmap :: Method "set_normalmap" cls sig => cls -> sig
+set_normalmap = runMethod @"set_normalmap"
+
+set_notify_local_transform ::
+                             Method "set_notify_local_transform" cls sig => cls -> sig
+set_notify_local_transform
+  = runMethod @"set_notify_local_transform"
+
+set_notify_transform ::
+                       Method "set_notify_transform" cls sig => cls -> sig
+set_notify_transform = runMethod @"set_notify_transform"
+
+set_object_id :: Method "set_object_id" cls sig => cls -> sig
+set_object_id = runMethod @"set_object_id"
+
+set_occluder_light_mask ::
+                          Method "set_occluder_light_mask" cls sig => cls -> sig
+set_occluder_light_mask = runMethod @"set_occluder_light_mask"
+
+set_occluder_polygon ::
+                       Method "set_occluder_polygon" cls sig => cls -> sig
+set_occluder_polygon = runMethod @"set_occluder_polygon"
+
+set_octant_size :: Method "set_octant_size" cls sig => cls -> sig
+set_octant_size = runMethod @"set_octant_size"
+
+set_octaves :: Method "set_octaves" cls sig => cls -> sig
+set_octaves = runMethod @"set_octaves"
+
+set_octree :: Method "set_octree" cls sig => cls -> sig
+set_octree = runMethod @"set_octree"
+
+set_offset :: Method "set_offset" cls sig => cls -> sig
+set_offset = runMethod @"set_offset"
+
+set_offsets :: Method "set_offsets" cls sig => cls -> sig
+set_offsets = runMethod @"set_offsets"
+
+set_one_shot :: Method "set_one_shot" cls sig => cls -> sig
+set_one_shot = runMethod @"set_one_shot"
+
+set_one_way_collision ::
+                        Method "set_one_way_collision" cls sig => cls -> sig
+set_one_way_collision = runMethod @"set_one_way_collision"
+
+set_opacity :: Method "set_opacity" cls sig => cls -> sig
+set_opacity = runMethod @"set_opacity"
+
+set_operation :: Method "set_operation" cls sig => cls -> sig
+set_operation = runMethod @"set_operation"
+
+set_operator :: Method "set_operator" cls sig => cls -> sig
+set_operator = runMethod @"set_operator"
+
+set_order :: Method "set_order" cls sig => cls -> sig
+set_order = runMethod @"set_order"
+
+set_origin_offset ::
+                    Method "set_origin_offset" cls sig => cls -> sig
+set_origin_offset = runMethod @"set_origin_offset"
+
+set_orthogonal :: Method "set_orthogonal" cls sig => cls -> sig
+set_orthogonal = runMethod @"set_orthogonal"
+
+set_out_of_range_mode ::
+                        Method "set_out_of_range_mode" cls sig => cls -> sig
+set_out_of_range_mode = runMethod @"set_out_of_range_mode"
+
+set_outer_radius :: Method "set_outer_radius" cls sig => cls -> sig
+set_outer_radius = runMethod @"set_outer_radius"
+
+set_outline :: Method "set_outline" cls sig => cls -> sig
+set_outline = runMethod @"set_outline"
+
+set_outline_color ::
+                    Method "set_outline_color" cls sig => cls -> sig
+set_outline_color = runMethod @"set_outline_color"
+
+set_outline_size :: Method "set_outline_size" cls sig => cls -> sig
+set_outline_size = runMethod @"set_outline_size"
+
+set_output_buffer_max_size ::
+                             Method "set_output_buffer_max_size" cls sig => cls -> sig
+set_output_buffer_max_size
+  = runMethod @"set_output_buffer_max_size"
+
+set_output_port_for_preview ::
+                              Method "set_output_port_for_preview" cls sig => cls -> sig
+set_output_port_for_preview
+  = runMethod @"set_output_port_for_preview"
+
+set_over_texture :: Method "set_over_texture" cls sig => cls -> sig
+set_over_texture = runMethod @"set_over_texture"
+
+set_overlay :: Method "set_overlay" cls sig => cls -> sig
+set_overlay = runMethod @"set_overlay"
+
+set_override_selected_font_color ::
+                                   Method "set_override_selected_font_color" cls sig => cls -> sig
+set_override_selected_font_color
+  = runMethod @"set_override_selected_font_color"
+
+set_oversample :: Method "set_oversample" cls sig => cls -> sig
+set_oversample = runMethod @"set_oversample"
+
+set_owner :: Method "set_owner" cls sig => cls -> sig
+set_owner = runMethod @"set_owner"
+
+set_page :: Method "set_page" cls sig => cls -> sig
+set_page = runMethod @"set_page"
+
+set_pan :: Method "set_pan" cls sig => cls -> sig
+set_pan = runMethod @"set_pan"
+
+set_pan_pullout :: Method "set_pan_pullout" cls sig => cls -> sig
+set_pan_pullout = runMethod @"set_pan_pullout"
+
+set_panorama :: Method "set_panorama" cls sig => cls -> sig
+set_panorama = runMethod @"set_panorama"
+
+set_param :: Method "set_param" cls sig => cls -> sig
+set_param = runMethod @"set_param"
+
+set_param_curve :: Method "set_param_curve" cls sig => cls -> sig
+set_param_curve = runMethod @"set_param_curve"
+
+set_param_randomness ::
+                       Method "set_param_randomness" cls sig => cls -> sig
+set_param_randomness = runMethod @"set_param_randomness"
+
+set_param_texture ::
+                    Method "set_param_texture" cls sig => cls -> sig
+set_param_texture = runMethod @"set_param_texture"
+
+set_param_x :: Method "set_param_x" cls sig => cls -> sig
+set_param_x = runMethod @"set_param_x"
+
+set_param_y :: Method "set_param_y" cls sig => cls -> sig
+set_param_y = runMethod @"set_param_y"
+
+set_param_z :: Method "set_param_z" cls sig => cls -> sig
+set_param_z = runMethod @"set_param_z"
+
+set_parameter :: Method "set_parameter" cls sig => cls -> sig
+set_parameter = runMethod @"set_parameter"
+
+set_parent_collision_ignore ::
+                              Method "set_parent_collision_ignore" cls sig => cls -> sig
+set_parent_collision_ignore
+  = runMethod @"set_parent_collision_ignore"
+
+set_particle_flag ::
+                    Method "set_particle_flag" cls sig => cls -> sig
+set_particle_flag = runMethod @"set_particle_flag"
+
+set_particles_anim_h_frames ::
+                              Method "set_particles_anim_h_frames" cls sig => cls -> sig
+set_particles_anim_h_frames
+  = runMethod @"set_particles_anim_h_frames"
+
+set_particles_anim_loop ::
+                          Method "set_particles_anim_loop" cls sig => cls -> sig
+set_particles_anim_loop = runMethod @"set_particles_anim_loop"
+
+set_particles_anim_v_frames ::
+                              Method "set_particles_anim_v_frames" cls sig => cls -> sig
+set_particles_anim_v_frames
+  = runMethod @"set_particles_anim_v_frames"
+
+set_passby_press :: Method "set_passby_press" cls sig => cls -> sig
+set_passby_press = runMethod @"set_passby_press"
+
+set_patch_margin :: Method "set_patch_margin" cls sig => cls -> sig
+set_patch_margin = runMethod @"set_patch_margin"
+
+set_path :: Method "set_path" cls sig => cls -> sig
+set_path = runMethod @"set_path"
+
+set_path_continuous_u ::
+                        Method "set_path_continuous_u" cls sig => cls -> sig
+set_path_continuous_u = runMethod @"set_path_continuous_u"
+
+set_path_interval ::
+                    Method "set_path_interval" cls sig => cls -> sig
+set_path_interval = runMethod @"set_path_interval"
+
+set_path_joined :: Method "set_path_joined" cls sig => cls -> sig
+set_path_joined = runMethod @"set_path_joined"
+
+set_path_local :: Method "set_path_local" cls sig => cls -> sig
+set_path_local = runMethod @"set_path_local"
+
+set_path_node :: Method "set_path_node" cls sig => cls -> sig
+set_path_node = runMethod @"set_path_node"
+
+set_path_rotation ::
+                    Method "set_path_rotation" cls sig => cls -> sig
+set_path_rotation = runMethod @"set_path_rotation"
+
+set_pause :: Method "set_pause" cls sig => cls -> sig
+set_pause = runMethod @"set_pause"
+
+set_pause_mode :: Method "set_pause_mode" cls sig => cls -> sig
+set_pause_mode = runMethod @"set_pause_mode"
+
+set_paused :: Method "set_paused" cls sig => cls -> sig
+set_paused = runMethod @"set_paused"
+
+set_percent_visible ::
+                      Method "set_percent_visible" cls sig => cls -> sig
+set_percent_visible = runMethod @"set_percent_visible"
+
+set_period :: Method "set_period" cls sig => cls -> sig
+set_period = runMethod @"set_period"
+
+set_persistence :: Method "set_persistence" cls sig => cls -> sig
+set_persistence = runMethod @"set_persistence"
+
+set_perspective :: Method "set_perspective" cls sig => cls -> sig
+set_perspective = runMethod @"set_perspective"
+
+set_physics_jitter_fix ::
+                         Method "set_physics_jitter_fix" cls sig => cls -> sig
+set_physics_jitter_fix = runMethod @"set_physics_jitter_fix"
+
+set_physics_material_override ::
+                                Method "set_physics_material_override" cls sig => cls -> sig
+set_physics_material_override
+  = runMethod @"set_physics_material_override"
+
+set_physics_object_picking ::
+                             Method "set_physics_object_picking" cls sig => cls -> sig
+set_physics_object_picking
+  = runMethod @"set_physics_object_picking"
+
+set_physics_process ::
+                      Method "set_physics_process" cls sig => cls -> sig
+set_physics_process = runMethod @"set_physics_process"
+
+set_physics_process_internal ::
+                               Method "set_physics_process_internal" cls sig => cls -> sig
+set_physics_process_internal
+  = runMethod @"set_physics_process_internal"
+
+set_pick_color :: Method "set_pick_color" cls sig => cls -> sig
+set_pick_color = runMethod @"set_pick_color"
+
+set_pickable :: Method "set_pickable" cls sig => cls -> sig
+set_pickable = runMethod @"set_pickable"
+
+set_piece_offset :: Method "set_piece_offset" cls sig => cls -> sig
+set_piece_offset = runMethod @"set_piece_offset"
+
+set_piece_texture ::
+                    Method "set_piece_texture" cls sig => cls -> sig
+set_piece_texture = runMethod @"set_piece_texture"
+
+set_pitch_scale :: Method "set_pitch_scale" cls sig => cls -> sig
+set_pitch_scale = runMethod @"set_pitch_scale"
+
+set_pivot_offset :: Method "set_pivot_offset" cls sig => cls -> sig
+set_pivot_offset = runMethod @"set_pivot_offset"
+
+set_pixel :: Method "set_pixel" cls sig => cls -> sig
+set_pixel = runMethod @"set_pixel"
+
+set_pixel_size :: Method "set_pixel_size" cls sig => cls -> sig
+set_pixel_size = runMethod @"set_pixel_size"
+
+set_pixelv :: Method "set_pixelv" cls sig => cls -> sig
+set_pixelv = runMethod @"set_pixelv"
+
+set_placeholder :: Method "set_placeholder" cls sig => cls -> sig
+set_placeholder = runMethod @"set_placeholder"
+
+set_placeholder_alpha ::
+                        Method "set_placeholder_alpha" cls sig => cls -> sig
+set_placeholder_alpha = runMethod @"set_placeholder_alpha"
+
+set_plane :: Method "set_plane" cls sig => cls -> sig
+set_plane = runMethod @"set_plane"
+
+set_plugin_enabled ::
+                     Method "set_plugin_enabled" cls sig => cls -> sig
+set_plugin_enabled = runMethod @"set_plugin_enabled"
+
+set_point_cloud :: Method "set_point_cloud" cls sig => cls -> sig
+set_point_cloud = runMethod @"set_point_cloud"
+
+set_point_in :: Method "set_point_in" cls sig => cls -> sig
+set_point_in = runMethod @"set_point_in"
+
+set_point_left_mode ::
+                      Method "set_point_left_mode" cls sig => cls -> sig
+set_point_left_mode = runMethod @"set_point_left_mode"
+
+set_point_left_tangent ::
+                         Method "set_point_left_tangent" cls sig => cls -> sig
+set_point_left_tangent = runMethod @"set_point_left_tangent"
+
+set_point_offset :: Method "set_point_offset" cls sig => cls -> sig
+set_point_offset = runMethod @"set_point_offset"
+
+set_point_out :: Method "set_point_out" cls sig => cls -> sig
+set_point_out = runMethod @"set_point_out"
+
+set_point_penalty ::
+                    Method "set_point_penalty" cls sig => cls -> sig
+set_point_penalty = runMethod @"set_point_penalty"
+
+set_point_position ::
+                     Method "set_point_position" cls sig => cls -> sig
+set_point_position = runMethod @"set_point_position"
+
+set_point_right_mode ::
+                       Method "set_point_right_mode" cls sig => cls -> sig
+set_point_right_mode = runMethod @"set_point_right_mode"
+
+set_point_right_tangent ::
+                          Method "set_point_right_tangent" cls sig => cls -> sig
+set_point_right_tangent = runMethod @"set_point_right_tangent"
+
+set_point_size :: Method "set_point_size" cls sig => cls -> sig
+set_point_size = runMethod @"set_point_size"
+
+set_point_tilt :: Method "set_point_tilt" cls sig => cls -> sig
+set_point_tilt = runMethod @"set_point_tilt"
+
+set_point_value :: Method "set_point_value" cls sig => cls -> sig
+set_point_value = runMethod @"set_point_value"
+
+set_point_weight_scale ::
+                         Method "set_point_weight_scale" cls sig => cls -> sig
+set_point_weight_scale = runMethod @"set_point_weight_scale"
+
+set_points :: Method "set_points" cls sig => cls -> sig
+set_points = runMethod @"set_points"
+
+set_polygon :: Method "set_polygon" cls sig => cls -> sig
+set_polygon = runMethod @"set_polygon"
+
+set_popup :: Method "set_popup" cls sig => cls -> sig
+set_popup = runMethod @"set_popup"
+
+set_pose_matching_coefficient ::
+                                Method "set_pose_matching_coefficient" cls sig => cls -> sig
+set_pose_matching_coefficient
+  = runMethod @"set_pose_matching_coefficient"
+
+set_position :: Method "set_position" cls sig => cls -> sig
+set_position = runMethod @"set_position"
+
+set_post_gain :: Method "set_post_gain" cls sig => cls -> sig
+set_post_gain = runMethod @"set_post_gain"
+
+set_pre_gain :: Method "set_pre_gain" cls sig => cls -> sig
+set_pre_gain = runMethod @"set_pre_gain"
+
+set_pre_process_time ::
+                       Method "set_pre_process_time" cls sig => cls -> sig
+set_pre_process_time = runMethod @"set_pre_process_time"
+
+set_predelay_feedback ::
+                        Method "set_predelay_feedback" cls sig => cls -> sig
+set_predelay_feedback = runMethod @"set_predelay_feedback"
+
+set_predelay_msec ::
+                    Method "set_predelay_msec" cls sig => cls -> sig
+set_predelay_msec = runMethod @"set_predelay_msec"
+
+set_prefix :: Method "set_prefix" cls sig => cls -> sig
+set_prefix = runMethod @"set_prefix"
+
+set_preload :: Method "set_preload" cls sig => cls -> sig
+set_preload = runMethod @"set_preload"
+
+set_pressed :: Method "set_pressed" cls sig => cls -> sig
+set_pressed = runMethod @"set_pressed"
+
+set_pressed_texture ::
+                      Method "set_pressed_texture" cls sig => cls -> sig
+set_pressed_texture = runMethod @"set_pressed_texture"
+
+set_pressure :: Method "set_pressure" cls sig => cls -> sig
+set_pressure = runMethod @"set_pressure"
+
+set_pressure_coefficient ::
+                           Method "set_pressure_coefficient" cls sig => cls -> sig
+set_pressure_coefficient = runMethod @"set_pressure_coefficient"
+
+set_primary_interface ::
+                        Method "set_primary_interface" cls sig => cls -> sig
+set_primary_interface = runMethod @"set_primary_interface"
+
+set_priority :: Method "set_priority" cls sig => cls -> sig
+set_priority = runMethod @"set_priority"
+
+set_probe_data :: Method "set_probe_data" cls sig => cls -> sig
+set_probe_data = runMethod @"set_probe_data"
+
+set_process :: Method "set_process" cls sig => cls -> sig
+set_process = runMethod @"set_process"
+
+set_process_input ::
+                    Method "set_process_input" cls sig => cls -> sig
+set_process_input = runMethod @"set_process_input"
+
+set_process_internal ::
+                       Method "set_process_internal" cls sig => cls -> sig
+set_process_internal = runMethod @"set_process_internal"
+
+set_process_material ::
+                       Method "set_process_material" cls sig => cls -> sig
+set_process_material = runMethod @"set_process_material"
+
+set_process_mode :: Method "set_process_mode" cls sig => cls -> sig
+set_process_mode = runMethod @"set_process_mode"
+
+set_process_priority ::
+                       Method "set_process_priority" cls sig => cls -> sig
+set_process_priority = runMethod @"set_process_priority"
+
+set_process_unhandled_input ::
+                              Method "set_process_unhandled_input" cls sig => cls -> sig
+set_process_unhandled_input
+  = runMethod @"set_process_unhandled_input"
+
+set_process_unhandled_key_input ::
+                                  Method "set_process_unhandled_key_input" cls sig => cls -> sig
+set_process_unhandled_key_input
+  = runMethod @"set_process_unhandled_key_input"
+
+set_progress_texture ::
+                       Method "set_progress_texture" cls sig => cls -> sig
+set_progress_texture = runMethod @"set_progress_texture"
+
+set_project_metadata ::
+                       Method "set_project_metadata" cls sig => cls -> sig
+set_project_metadata = runMethod @"set_project_metadata"
+
+set_projection :: Method "set_projection" cls sig => cls -> sig
+set_projection = runMethod @"set_projection"
+
+set_propagation :: Method "set_propagation" cls sig => cls -> sig
+set_propagation = runMethod @"set_propagation"
+
+set_property :: Method "set_property" cls sig => cls -> sig
+set_property = runMethod @"set_property"
+
+set_proximity_fade ::
+                     Method "set_proximity_fade" cls sig => cls -> sig
+set_proximity_fade = runMethod @"set_proximity_fade"
+
+set_proximity_fade_distance ::
+                              Method "set_proximity_fade_distance" cls sig => cls -> sig
+set_proximity_fade_distance
+  = runMethod @"set_proximity_fade_distance"
+
+set_quadrant_size ::
+                    Method "set_quadrant_size" cls sig => cls -> sig
+set_quadrant_size = runMethod @"set_quadrant_size"
+
+set_quit_on_go_back ::
+                      Method "set_quit_on_go_back" cls sig => cls -> sig
+set_quit_on_go_back = runMethod @"set_quit_on_go_back"
+
+set_radial_center_offset ::
+                           Method "set_radial_center_offset" cls sig => cls -> sig
+set_radial_center_offset = runMethod @"set_radial_center_offset"
+
+set_radial_initial_angle ::
+                           Method "set_radial_initial_angle" cls sig => cls -> sig
+set_radial_initial_angle = runMethod @"set_radial_initial_angle"
+
+set_radial_segments ::
+                      Method "set_radial_segments" cls sig => cls -> sig
+set_radial_segments = runMethod @"set_radial_segments"
+
+set_radiance_size ::
+                    Method "set_radiance_size" cls sig => cls -> sig
+set_radiance_size = runMethod @"set_radiance_size"
+
+set_radius :: Method "set_radius" cls sig => cls -> sig
+set_radius = runMethod @"set_radius"
+
+set_random_pitch :: Method "set_random_pitch" cls sig => cls -> sig
+set_random_pitch = runMethod @"set_random_pitch"
+
+set_randomness_ratio ::
+                       Method "set_randomness_ratio" cls sig => cls -> sig
+set_randomness_ratio = runMethod @"set_randomness_ratio"
+
+set_range :: Method "set_range" cls sig => cls -> sig
+set_range = runMethod @"set_range"
+
+set_range_config :: Method "set_range_config" cls sig => cls -> sig
+set_range_config = runMethod @"set_range_config"
+
+set_range_max_hz :: Method "set_range_max_hz" cls sig => cls -> sig
+set_range_max_hz = runMethod @"set_range_max_hz"
+
+set_range_min_hz :: Method "set_range_min_hz" cls sig => cls -> sig
+set_range_min_hz = runMethod @"set_range_min_hz"
+
+set_rate_hz :: Method "set_rate_hz" cls sig => cls -> sig
+set_rate_hz = runMethod @"set_rate_hz"
+
+set_ratio :: Method "set_ratio" cls sig => cls -> sig
+set_ratio = runMethod @"set_ratio"
+
+set_raw_mode :: Method "set_raw_mode" cls sig => cls -> sig
+set_raw_mode = runMethod @"set_raw_mode"
+
+set_ray_pickable :: Method "set_ray_pickable" cls sig => cls -> sig
+set_ray_pickable = runMethod @"set_ray_pickable"
+
+set_read_chunk_size ::
+                      Method "set_read_chunk_size" cls sig => cls -> sig
+set_read_chunk_size = runMethod @"set_read_chunk_size"
+
+set_read_only :: Method "set_read_only" cls sig => cls -> sig
+set_read_only = runMethod @"set_read_only"
+
+set_readonly :: Method "set_readonly" cls sig => cls -> sig
+set_readonly = runMethod @"set_readonly"
+
+set_recent_dirs :: Method "set_recent_dirs" cls sig => cls -> sig
+set_recent_dirs = runMethod @"set_recent_dirs"
+
+set_recording_active ::
+                       Method "set_recording_active" cls sig => cls -> sig
+set_recording_active = runMethod @"set_recording_active"
+
+set_rect :: Method "set_rect" cls sig => cls -> sig
+set_rect = runMethod @"set_rect"
+
+set_refraction :: Method "set_refraction" cls sig => cls -> sig
+set_refraction = runMethod @"set_refraction"
+
+set_refraction_texture_channel ::
+                                 Method "set_refraction_texture_channel" cls sig => cls -> sig
+set_refraction_texture_channel
+  = runMethod @"set_refraction_texture_channel"
+
+set_refuse_new_connections ::
+                             Method "set_refuse_new_connections" cls sig => cls -> sig
+set_refuse_new_connections
+  = runMethod @"set_refuse_new_connections"
+
+set_refuse_new_network_connections ::
+                                     Method "set_refuse_new_network_connections" cls sig =>
+                                     cls -> sig
+set_refuse_new_network_connections
+  = runMethod @"set_refuse_new_network_connections"
+
+set_region :: Method "set_region" cls sig => cls -> sig
+set_region = runMethod @"set_region"
+
+set_region_filter_clip ::
+                         Method "set_region_filter_clip" cls sig => cls -> sig
+set_region_filter_clip = runMethod @"set_region_filter_clip"
+
+set_region_merge_size ::
+                        Method "set_region_merge_size" cls sig => cls -> sig
+set_region_merge_size = runMethod @"set_region_merge_size"
+
+set_region_min_size ::
+                      Method "set_region_min_size" cls sig => cls -> sig
+set_region_min_size = runMethod @"set_region_min_size"
+
+set_region_rect :: Method "set_region_rect" cls sig => cls -> sig
+set_region_rect = runMethod @"set_region_rect"
+
+set_relative :: Method "set_relative" cls sig => cls -> sig
+set_relative = runMethod @"set_relative"
+
+set_release_ms :: Method "set_release_ms" cls sig => cls -> sig
+set_release_ms = runMethod @"set_release_ms"
+
+set_reloadable :: Method "set_reloadable" cls sig => cls -> sig
+set_reloadable = runMethod @"set_reloadable"
+
+set_remote_node :: Method "set_remote_node" cls sig => cls -> sig
+set_remote_node = runMethod @"set_remote_node"
+
+set_render_priority ::
+                      Method "set_render_priority" cls sig => cls -> sig
+set_render_priority = runMethod @"set_render_priority"
+
+set_repeat :: Method "set_repeat" cls sig => cls -> sig
+set_repeat = runMethod @"set_repeat"
+
+set_resizable :: Method "set_resizable" cls sig => cls -> sig
+set_resizable = runMethod @"set_resizable"
+
+set_resonance :: Method "set_resonance" cls sig => cls -> sig
+set_resonance = runMethod @"set_resonance"
+
+set_resource_path ::
+                    Method "set_resource_path" cls sig => cls -> sig
+set_resource_path = runMethod @"set_resource_path"
+
+set_rest :: Method "set_rest" cls sig => cls -> sig
+set_rest = runMethod @"set_rest"
+
+set_rest_length :: Method "set_rest_length" cls sig => cls -> sig
+set_rest_length = runMethod @"set_rest_length"
+
+set_result :: Method "set_result" cls sig => cls -> sig
+set_result = runMethod @"set_result"
+
+set_return_type :: Method "set_return_type" cls sig => cls -> sig
+set_return_type = runMethod @"set_return_type"
+
+set_reverb_amount ::
+                    Method "set_reverb_amount" cls sig => cls -> sig
+set_reverb_amount = runMethod @"set_reverb_amount"
+
+set_reverb_bus :: Method "set_reverb_bus" cls sig => cls -> sig
+set_reverb_bus = runMethod @"set_reverb_bus"
+
+set_reverb_uniformity ::
+                        Method "set_reverb_uniformity" cls sig => cls -> sig
+set_reverb_uniformity = runMethod @"set_reverb_uniformity"
+
+set_right_click_moves_caret ::
+                              Method "set_right_click_moves_caret" cls sig => cls -> sig
+set_right_click_moves_caret
+  = runMethod @"set_right_click_moves_caret"
+
+set_right_disconnects ::
+                        Method "set_right_disconnects" cls sig => cls -> sig
+set_right_disconnects = runMethod @"set_right_disconnects"
+
+set_rim :: Method "set_rim" cls sig => cls -> sig
+set_rim = runMethod @"set_rim"
+
+set_rim_tint :: Method "set_rim_tint" cls sig => cls -> sig
+set_rim_tint = runMethod @"set_rim_tint"
+
+set_ring_sides :: Method "set_ring_sides" cls sig => cls -> sig
+set_ring_sides = runMethod @"set_ring_sides"
+
+set_rings :: Method "set_rings" cls sig => cls -> sig
+set_rings = runMethod @"set_rings"
+
+set_roll_influence ::
+                     Method "set_roll_influence" cls sig => cls -> sig
+set_roll_influence = runMethod @"set_roll_influence"
+
+set_room_size :: Method "set_room_size" cls sig => cls -> sig
+set_room_size = runMethod @"set_room_size"
+
+set_root :: Method "set_root" cls sig => cls -> sig
+set_root = runMethod @"set_root"
+
+set_root_bone :: Method "set_root_bone" cls sig => cls -> sig
+set_root_bone = runMethod @"set_root_bone"
+
+set_root_motion_track ::
+                        Method "set_root_motion_track" cls sig => cls -> sig
+set_root_motion_track = runMethod @"set_root_motion_track"
+
+set_root_node :: Method "set_root_node" cls sig => cls -> sig
+set_root_node = runMethod @"set_root_node"
+
+set_rotate :: Method "set_rotate" cls sig => cls -> sig
+set_rotate = runMethod @"set_rotate"
+
+set_rotating :: Method "set_rotating" cls sig => cls -> sig
+set_rotating = runMethod @"set_rotating"
+
+set_rotation :: Method "set_rotation" cls sig => cls -> sig
+set_rotation = runMethod @"set_rotation"
+
+set_rotation_degrees ::
+                       Method "set_rotation_degrees" cls sig => cls -> sig
+set_rotation_degrees = runMethod @"set_rotation_degrees"
+
+set_rotation_mode ::
+                    Method "set_rotation_mode" cls sig => cls -> sig
+set_rotation_mode = runMethod @"set_rotation_mode"
+
+set_rough :: Method "set_rough" cls sig => cls -> sig
+set_rough = runMethod @"set_rough"
+
+set_roughness :: Method "set_roughness" cls sig => cls -> sig
+set_roughness = runMethod @"set_roughness"
+
+set_roughness_texture_channel ::
+                                Method "set_roughness_texture_channel" cls sig => cls -> sig
+set_roughness_texture_channel
+  = runMethod @"set_roughness_texture_channel"
+
+set_round_precision ::
+                      Method "set_round_precision" cls sig => cls -> sig
+set_round_precision = runMethod @"set_round_precision"
+
+set_rpc_call_mode ::
+                    Method "set_rpc_call_mode" cls sig => cls -> sig
+set_rpc_call_mode = runMethod @"set_rpc_call_mode"
+
+set_rumble :: Method "set_rumble" cls sig => cls -> sig
+set_rumble = runMethod @"set_rumble"
+
+set_safe_margin :: Method "set_safe_margin" cls sig => cls -> sig
+set_safe_margin = runMethod @"set_safe_margin"
+
+set_same_column_width ::
+                        Method "set_same_column_width" cls sig => cls -> sig
+set_same_column_width = runMethod @"set_same_column_width"
+
+set_sample_partition_type ::
+                            Method "set_sample_partition_type" cls sig => cls -> sig
+set_sample_partition_type = runMethod @"set_sample_partition_type"
+
+set_scale :: Method "set_scale" cls sig => cls -> sig
+set_scale = runMethod @"set_scale"
+
+set_scancode :: Method "set_scancode" cls sig => cls -> sig
+set_scancode = runMethod @"set_scancode"
+
+set_scene_instance_load_placeholder ::
+                                      Method "set_scene_instance_load_placeholder" cls sig =>
+                                      cls -> sig
+set_scene_instance_load_placeholder
+  = runMethod @"set_scene_instance_load_placeholder"
+
+set_screen_drawing_enabled ::
+                             Method "set_screen_drawing_enabled" cls sig => cls -> sig
+set_screen_drawing_enabled
+  = runMethod @"set_screen_drawing_enabled"
+
+set_screen_orientation ::
+                         Method "set_screen_orientation" cls sig => cls -> sig
+set_screen_orientation = runMethod @"set_screen_orientation"
+
+set_screen_stretch ::
+                     Method "set_screen_stretch" cls sig => cls -> sig
+set_screen_stretch = runMethod @"set_screen_stretch"
+
+set_script :: Method "set_script" cls sig => cls -> sig
+set_script = runMethod @"set_script"
+
+set_script_class_icon_path ::
+                             Method "set_script_class_icon_path" cls sig => cls -> sig
+set_script_class_icon_path
+  = runMethod @"set_script_class_icon_path"
+
+set_script_class_name ::
+                        Method "set_script_class_name" cls sig => cls -> sig
+set_script_class_name = runMethod @"set_script_class_name"
+
+set_scroll_active ::
+                    Method "set_scroll_active" cls sig => cls -> sig
+set_scroll_active = runMethod @"set_scroll_active"
+
+set_scroll_base_offset ::
+                         Method "set_scroll_base_offset" cls sig => cls -> sig
+set_scroll_base_offset = runMethod @"set_scroll_base_offset"
+
+set_scroll_base_scale ::
+                        Method "set_scroll_base_scale" cls sig => cls -> sig
+set_scroll_base_scale = runMethod @"set_scroll_base_scale"
+
+set_scroll_follow ::
+                    Method "set_scroll_follow" cls sig => cls -> sig
+set_scroll_follow = runMethod @"set_scroll_follow"
+
+set_scroll_offset ::
+                    Method "set_scroll_offset" cls sig => cls -> sig
+set_scroll_offset = runMethod @"set_scroll_offset"
+
+set_scroll_ofs :: Method "set_scroll_ofs" cls sig => cls -> sig
+set_scroll_ofs = runMethod @"set_scroll_ofs"
+
+set_scrollable :: Method "set_scrollable" cls sig => cls -> sig
+set_scrollable = runMethod @"set_scrollable"
+
+set_scrolling_enabled ::
+                        Method "set_scrolling_enabled" cls sig => cls -> sig
+set_scrolling_enabled = runMethod @"set_scrolling_enabled"
+
+set_seamless :: Method "set_seamless" cls sig => cls -> sig
+set_seamless = runMethod @"set_seamless"
+
+set_secret :: Method "set_secret" cls sig => cls -> sig
+set_secret = runMethod @"set_secret"
+
+set_secret_character ::
+                       Method "set_secret_character" cls sig => cls -> sig
+set_secret_character = runMethod @"set_secret_character"
+
+set_seed :: Method "set_seed" cls sig => cls -> sig
+set_seed = runMethod @"set_seed"
+
+set_segments :: Method "set_segments" cls sig => cls -> sig
+set_segments = runMethod @"set_segments"
+
+set_select_mode :: Method "set_select_mode" cls sig => cls -> sig
+set_select_mode = runMethod @"set_select_mode"
+
+set_select_with_rmb ::
+                      Method "set_select_with_rmb" cls sig => cls -> sig
+set_select_with_rmb = runMethod @"set_select_with_rmb"
+
+set_selectable :: Method "set_selectable" cls sig => cls -> sig
+set_selectable = runMethod @"set_selectable"
+
+set_selected :: Method "set_selected" cls sig => cls -> sig
+set_selected = runMethod @"set_selected"
+
+set_selection_enabled ::
+                        Method "set_selection_enabled" cls sig => cls -> sig
+set_selection_enabled = runMethod @"set_selection_enabled"
+
+set_self_modulate ::
+                    Method "set_self_modulate" cls sig => cls -> sig
+set_self_modulate = runMethod @"set_self_modulate"
+
+set_service_type :: Method "set_service_type" cls sig => cls -> sig
+set_service_type = runMethod @"set_service_type"
+
+set_setting :: Method "set_setting" cls sig => cls -> sig
+set_setting = runMethod @"set_setting"
+
+set_shader :: Method "set_shader" cls sig => cls -> sig
+set_shader = runMethod @"set_shader"
+
+set_shader_param :: Method "set_shader_param" cls sig => cls -> sig
+set_shader_param = runMethod @"set_shader_param"
+
+set_shadow :: Method "set_shadow" cls sig => cls -> sig
+set_shadow = runMethod @"set_shadow"
+
+set_shadow_atlas_quadrant_subdiv ::
+                                   Method "set_shadow_atlas_quadrant_subdiv" cls sig => cls -> sig
+set_shadow_atlas_quadrant_subdiv
+  = runMethod @"set_shadow_atlas_quadrant_subdiv"
+
+set_shadow_atlas_size ::
+                        Method "set_shadow_atlas_size" cls sig => cls -> sig
+set_shadow_atlas_size = runMethod @"set_shadow_atlas_size"
+
+set_shadow_buffer_size ::
+                         Method "set_shadow_buffer_size" cls sig => cls -> sig
+set_shadow_buffer_size = runMethod @"set_shadow_buffer_size"
+
+set_shadow_color :: Method "set_shadow_color" cls sig => cls -> sig
+set_shadow_color = runMethod @"set_shadow_color"
+
+set_shadow_depth_range ::
+                         Method "set_shadow_depth_range" cls sig => cls -> sig
+set_shadow_depth_range = runMethod @"set_shadow_depth_range"
+
+set_shadow_detail ::
+                    Method "set_shadow_detail" cls sig => cls -> sig
+set_shadow_detail = runMethod @"set_shadow_detail"
+
+set_shadow_enabled ::
+                     Method "set_shadow_enabled" cls sig => cls -> sig
+set_shadow_enabled = runMethod @"set_shadow_enabled"
+
+set_shadow_filter ::
+                    Method "set_shadow_filter" cls sig => cls -> sig
+set_shadow_filter = runMethod @"set_shadow_filter"
+
+set_shadow_gradient_length ::
+                             Method "set_shadow_gradient_length" cls sig => cls -> sig
+set_shadow_gradient_length
+  = runMethod @"set_shadow_gradient_length"
+
+set_shadow_mode :: Method "set_shadow_mode" cls sig => cls -> sig
+set_shadow_mode = runMethod @"set_shadow_mode"
+
+set_shadow_reverse_cull_face ::
+                               Method "set_shadow_reverse_cull_face" cls sig => cls -> sig
+set_shadow_reverse_cull_face
+  = runMethod @"set_shadow_reverse_cull_face"
+
+set_shadow_size :: Method "set_shadow_size" cls sig => cls -> sig
+set_shadow_size = runMethod @"set_shadow_size"
+
+set_shadow_smooth ::
+                    Method "set_shadow_smooth" cls sig => cls -> sig
+set_shadow_smooth = runMethod @"set_shadow_smooth"
+
+set_shape :: Method "set_shape" cls sig => cls -> sig
+set_shape = runMethod @"set_shape"
+
+set_shape_centered ::
+                     Method "set_shape_centered" cls sig => cls -> sig
+set_shape_centered = runMethod @"set_shape_centered"
+
+set_shape_rid :: Method "set_shape_rid" cls sig => cls -> sig
+set_shape_rid = runMethod @"set_shape_rid"
+
+set_shape_visible ::
+                    Method "set_shape_visible" cls sig => cls -> sig
+set_shape_visible = runMethod @"set_shape_visible"
+
+set_sharp_limit :: Method "set_sharp_limit" cls sig => cls -> sig
+set_sharp_limit = runMethod @"set_sharp_limit"
+
+set_shift :: Method "set_shift" cls sig => cls -> sig
+set_shift = runMethod @"set_shift"
+
+set_shortcut :: Method "set_shortcut" cls sig => cls -> sig
+set_shortcut = runMethod @"set_shortcut"
+
+set_show_close_button ::
+                        Method "set_show_close_button" cls sig => cls -> sig
+set_show_close_button = runMethod @"set_show_close_button"
+
+set_show_hidden_files ::
+                        Method "set_show_hidden_files" cls sig => cls -> sig
+set_show_hidden_files = runMethod @"set_show_hidden_files"
+
+set_show_line_numbers ::
+                        Method "set_show_line_numbers" cls sig => cls -> sig
+set_show_line_numbers = runMethod @"set_show_line_numbers"
+
+set_side :: Method "set_side" cls sig => cls -> sig
+set_side = runMethod @"set_side"
+
+set_sidechain :: Method "set_sidechain" cls sig => cls -> sig
+set_sidechain = runMethod @"set_sidechain"
+
+set_sides :: Method "set_sides" cls sig => cls -> sig
+set_sides = runMethod @"set_sides"
+
+set_signal :: Method "set_signal" cls sig => cls -> sig
+set_signal = runMethod @"set_signal"
+
+set_simulation_precision ::
+                           Method "set_simulation_precision" cls sig => cls -> sig
+set_simulation_precision = runMethod @"set_simulation_precision"
+
+set_singleton :: Method "set_singleton" cls sig => cls -> sig
+set_singleton = runMethod @"set_singleton"
+
+set_size :: Method "set_size" cls sig => cls -> sig
+set_size = runMethod @"set_size"
+
+set_size_override ::
+                    Method "set_size_override" cls sig => cls -> sig
+set_size_override = runMethod @"set_size_override"
+
+set_size_override_stretch ::
+                            Method "set_size_override_stretch" cls sig => cls -> sig
+set_size_override_stretch = runMethod @"set_size_override_stretch"
+
+set_skeleton :: Method "set_skeleton" cls sig => cls -> sig
+set_skeleton = runMethod @"set_skeleton"
+
+set_skeleton_path ::
+                    Method "set_skeleton_path" cls sig => cls -> sig
+set_skeleton_path = runMethod @"set_skeleton_path"
+
+set_sky :: Method "set_sky" cls sig => cls -> sig
+set_sky = runMethod @"set_sky"
+
+set_sky_curve :: Method "set_sky_curve" cls sig => cls -> sig
+set_sky_curve = runMethod @"set_sky_curve"
+
+set_sky_custom_fov ::
+                     Method "set_sky_custom_fov" cls sig => cls -> sig
+set_sky_custom_fov = runMethod @"set_sky_custom_fov"
+
+set_sky_energy :: Method "set_sky_energy" cls sig => cls -> sig
+set_sky_energy = runMethod @"set_sky_energy"
+
+set_sky_horizon_color ::
+                        Method "set_sky_horizon_color" cls sig => cls -> sig
+set_sky_horizon_color = runMethod @"set_sky_horizon_color"
+
+set_sky_top_color ::
+                    Method "set_sky_top_color" cls sig => cls -> sig
+set_sky_top_color = runMethod @"set_sky_top_color"
+
+set_sleep_state :: Method "set_sleep_state" cls sig => cls -> sig
+set_sleep_state = runMethod @"set_sleep_state"
+
+set_sleeping :: Method "set_sleeping" cls sig => cls -> sig
+set_sleeping = runMethod @"set_sleeping"
+
+set_slips_on_slope ::
+                     Method "set_slips_on_slope" cls sig => cls -> sig
+set_slips_on_slope = runMethod @"set_slips_on_slope"
+
+set_slot :: Method "set_slot" cls sig => cls -> sig
+set_slot = runMethod @"set_slot"
+
+set_smooth_faces :: Method "set_smooth_faces" cls sig => cls -> sig
+set_smooth_faces = runMethod @"set_smooth_faces"
+
+set_smooth_scroll_enable ::
+                           Method "set_smooth_scroll_enable" cls sig => cls -> sig
+set_smooth_scroll_enable = runMethod @"set_smooth_scroll_enable"
+
+set_snap :: Method "set_snap" cls sig => cls -> sig
+set_snap = runMethod @"set_snap"
+
+set_snap_controls_to_pixels ::
+                              Method "set_snap_controls_to_pixels" cls sig => cls -> sig
+set_snap_controls_to_pixels
+  = runMethod @"set_snap_controls_to_pixels"
+
+set_soft_clip_db :: Method "set_soft_clip_db" cls sig => cls -> sig
+set_soft_clip_db = runMethod @"set_soft_clip_db"
+
+set_soft_clip_ratio ::
+                      Method "set_soft_clip_ratio" cls sig => cls -> sig
+set_soft_clip_ratio = runMethod @"set_soft_clip_ratio"
+
+set_softness :: Method "set_softness" cls sig => cls -> sig
+set_softness = runMethod @"set_softness"
+
+set_solver_priority ::
+                      Method "set_solver_priority" cls sig => cls -> sig
+set_solver_priority = runMethod @"set_solver_priority"
+
+set_sort_enabled :: Method "set_sort_enabled" cls sig => cls -> sig
+set_sort_enabled = runMethod @"set_sort_enabled"
+
+set_source :: Method "set_source" cls sig => cls -> sig
+set_source = runMethod @"set_source"
+
+set_source_code :: Method "set_source_code" cls sig => cls -> sig
+set_source_code = runMethod @"set_source_code"
+
+set_space_override_mode ::
+                          Method "set_space_override_mode" cls sig => cls -> sig
+set_space_override_mode = runMethod @"set_space_override_mode"
+
+set_spacing :: Method "set_spacing" cls sig => cls -> sig
+set_spacing = runMethod @"set_spacing"
+
+set_spatial_node :: Method "set_spatial_node" cls sig => cls -> sig
+set_spatial_node = runMethod @"set_spatial_node"
+
+set_specular :: Method "set_specular" cls sig => cls -> sig
+set_specular = runMethod @"set_specular"
+
+set_specular_mode ::
+                    Method "set_specular_mode" cls sig => cls -> sig
+set_specular_mode = runMethod @"set_specular_mode"
+
+set_speed :: Method "set_speed" cls sig => cls -> sig
+set_speed = runMethod @"set_speed"
+
+set_speed_scale :: Method "set_speed_scale" cls sig => cls -> sig
+set_speed_scale = runMethod @"set_speed_scale"
+
+set_spin_degrees :: Method "set_spin_degrees" cls sig => cls -> sig
+set_spin_degrees = runMethod @"set_spin_degrees"
+
+set_spin_sides :: Method "set_spin_sides" cls sig => cls -> sig
+set_spin_sides = runMethod @"set_spin_sides"
+
+set_split_offset :: Method "set_split_offset" cls sig => cls -> sig
+set_split_offset = runMethod @"set_split_offset"
+
+set_splits :: Method "set_splits" cls sig => cls -> sig
+set_splits = runMethod @"set_splits"
+
+set_spread :: Method "set_spread" cls sig => cls -> sig
+set_spread = runMethod @"set_spread"
+
+set_sprite_frames ::
+                    Method "set_sprite_frames" cls sig => cls -> sig
+set_sprite_frames = runMethod @"set_sprite_frames"
+
+set_ssao_ao_channel_affect ::
+                             Method "set_ssao_ao_channel_affect" cls sig => cls -> sig
+set_ssao_ao_channel_affect
+  = runMethod @"set_ssao_ao_channel_affect"
+
+set_ssao_bias :: Method "set_ssao_bias" cls sig => cls -> sig
+set_ssao_bias = runMethod @"set_ssao_bias"
+
+set_ssao_blur :: Method "set_ssao_blur" cls sig => cls -> sig
+set_ssao_blur = runMethod @"set_ssao_blur"
+
+set_ssao_color :: Method "set_ssao_color" cls sig => cls -> sig
+set_ssao_color = runMethod @"set_ssao_color"
+
+set_ssao_direct_light_affect ::
+                               Method "set_ssao_direct_light_affect" cls sig => cls -> sig
+set_ssao_direct_light_affect
+  = runMethod @"set_ssao_direct_light_affect"
+
+set_ssao_edge_sharpness ::
+                          Method "set_ssao_edge_sharpness" cls sig => cls -> sig
+set_ssao_edge_sharpness = runMethod @"set_ssao_edge_sharpness"
+
+set_ssao_enabled :: Method "set_ssao_enabled" cls sig => cls -> sig
+set_ssao_enabled = runMethod @"set_ssao_enabled"
+
+set_ssao_intensity ::
+                     Method "set_ssao_intensity" cls sig => cls -> sig
+set_ssao_intensity = runMethod @"set_ssao_intensity"
+
+set_ssao_intensity2 ::
+                      Method "set_ssao_intensity2" cls sig => cls -> sig
+set_ssao_intensity2 = runMethod @"set_ssao_intensity2"
+
+set_ssao_quality :: Method "set_ssao_quality" cls sig => cls -> sig
+set_ssao_quality = runMethod @"set_ssao_quality"
+
+set_ssao_radius :: Method "set_ssao_radius" cls sig => cls -> sig
+set_ssao_radius = runMethod @"set_ssao_radius"
+
+set_ssao_radius2 :: Method "set_ssao_radius2" cls sig => cls -> sig
+set_ssao_radius2 = runMethod @"set_ssao_radius2"
+
+set_ssr_depth_tolerance ::
+                          Method "set_ssr_depth_tolerance" cls sig => cls -> sig
+set_ssr_depth_tolerance = runMethod @"set_ssr_depth_tolerance"
+
+set_ssr_enabled :: Method "set_ssr_enabled" cls sig => cls -> sig
+set_ssr_enabled = runMethod @"set_ssr_enabled"
+
+set_ssr_fade_in :: Method "set_ssr_fade_in" cls sig => cls -> sig
+set_ssr_fade_in = runMethod @"set_ssr_fade_in"
+
+set_ssr_fade_out :: Method "set_ssr_fade_out" cls sig => cls -> sig
+set_ssr_fade_out = runMethod @"set_ssr_fade_out"
+
+set_ssr_max_steps ::
+                    Method "set_ssr_max_steps" cls sig => cls -> sig
+set_ssr_max_steps = runMethod @"set_ssr_max_steps"
+
+set_ssr_rough :: Method "set_ssr_rough" cls sig => cls -> sig
+set_ssr_rough = runMethod @"set_ssr_rough"
+
+set_start_node :: Method "set_start_node" cls sig => cls -> sig
+set_start_node = runMethod @"set_start_node"
+
+set_state :: Method "set_state" cls sig => cls -> sig
+set_state = runMethod @"set_state"
+
+set_steering :: Method "set_steering" cls sig => cls -> sig
+set_steering = runMethod @"set_steering"
+
+set_step :: Method "set_step" cls sig => cls -> sig
+set_step = runMethod @"set_step"
+
+set_steps :: Method "set_steps" cls sig => cls -> sig
+set_steps = runMethod @"set_steps"
+
+set_stereo :: Method "set_stereo" cls sig => cls -> sig
+set_stereo = runMethod @"set_stereo"
+
+set_stiffness :: Method "set_stiffness" cls sig => cls -> sig
+set_stiffness = runMethod @"set_stiffness"
+
+set_storage :: Method "set_storage" cls sig => cls -> sig
+set_storage = runMethod @"set_storage"
+
+set_stream :: Method "set_stream" cls sig => cls -> sig
+set_stream = runMethod @"set_stream"
+
+set_stream_paused ::
+                    Method "set_stream_paused" cls sig => cls -> sig
+set_stream_paused = runMethod @"set_stream_paused"
+
+set_stream_peer :: Method "set_stream_peer" cls sig => cls -> sig
+set_stream_peer = runMethod @"set_stream_peer"
+
+set_stream_position ::
+                      Method "set_stream_position" cls sig => cls -> sig
+set_stream_position = runMethod @"set_stream_position"
+
+set_stretch :: Method "set_stretch" cls sig => cls -> sig
+set_stretch = runMethod @"set_stretch"
+
+set_stretch_margin ::
+                     Method "set_stretch_margin" cls sig => cls -> sig
+set_stretch_margin = runMethod @"set_stretch_margin"
+
+set_stretch_mode :: Method "set_stretch_mode" cls sig => cls -> sig
+set_stretch_mode = runMethod @"set_stretch_mode"
+
+set_stretch_ratio ::
+                    Method "set_stretch_ratio" cls sig => cls -> sig
+set_stretch_ratio = runMethod @"set_stretch_ratio"
+
+set_stretch_shrink ::
+                     Method "set_stretch_shrink" cls sig => cls -> sig
+set_stretch_shrink = runMethod @"set_stretch_shrink"
+
+set_stylebox :: Method "set_stylebox" cls sig => cls -> sig
+set_stylebox = runMethod @"set_stylebox"
+
+set_subdiv :: Method "set_subdiv" cls sig => cls -> sig
+set_subdiv = runMethod @"set_subdiv"
+
+set_subdivide_depth ::
+                      Method "set_subdivide_depth" cls sig => cls -> sig
+set_subdivide_depth = runMethod @"set_subdivide_depth"
+
+set_subdivide_height ::
+                       Method "set_subdivide_height" cls sig => cls -> sig
+set_subdivide_height = runMethod @"set_subdivide_height"
+
+set_subdivide_width ::
+                      Method "set_subdivide_width" cls sig => cls -> sig
+set_subdivide_width = runMethod @"set_subdivide_width"
+
+set_submenu_popup_delay ::
+                          Method "set_submenu_popup_delay" cls sig => cls -> sig
+set_submenu_popup_delay = runMethod @"set_submenu_popup_delay"
+
+set_subsurface_scattering_strength ::
+                                     Method "set_subsurface_scattering_strength" cls sig =>
+                                     cls -> sig
+set_subsurface_scattering_strength
+  = runMethod @"set_subsurface_scattering_strength"
+
+set_suffix :: Method "set_suffix" cls sig => cls -> sig
+set_suffix = runMethod @"set_suffix"
+
+set_sun_angle_max ::
+                    Method "set_sun_angle_max" cls sig => cls -> sig
+set_sun_angle_max = runMethod @"set_sun_angle_max"
+
+set_sun_angle_min ::
+                    Method "set_sun_angle_min" cls sig => cls -> sig
+set_sun_angle_min = runMethod @"set_sun_angle_min"
+
+set_sun_color :: Method "set_sun_color" cls sig => cls -> sig
+set_sun_color = runMethod @"set_sun_color"
+
+set_sun_curve :: Method "set_sun_curve" cls sig => cls -> sig
+set_sun_curve = runMethod @"set_sun_curve"
+
+set_sun_energy :: Method "set_sun_energy" cls sig => cls -> sig
+set_sun_energy = runMethod @"set_sun_energy"
+
+set_sun_latitude :: Method "set_sun_latitude" cls sig => cls -> sig
+set_sun_latitude = runMethod @"set_sun_latitude"
+
+set_sun_longitude ::
+                    Method "set_sun_longitude" cls sig => cls -> sig
+set_sun_longitude = runMethod @"set_sun_longitude"
+
+set_surface_material ::
+                       Method "set_surface_material" cls sig => cls -> sig
+set_surface_material = runMethod @"set_surface_material"
+
+set_surround :: Method "set_surround" cls sig => cls -> sig
+set_surround = runMethod @"set_surround"
+
+set_suspension_max_force ::
+                           Method "set_suspension_max_force" cls sig => cls -> sig
+set_suspension_max_force = runMethod @"set_suspension_max_force"
+
+set_suspension_rest_length ::
+                             Method "set_suspension_rest_length" cls sig => cls -> sig
+set_suspension_rest_length
+  = runMethod @"set_suspension_rest_length"
+
+set_suspension_stiffness ::
+                           Method "set_suspension_stiffness" cls sig => cls -> sig
+set_suspension_stiffness = runMethod @"set_suspension_stiffness"
+
+set_suspension_travel ::
+                        Method "set_suspension_travel" cls sig => cls -> sig
+set_suspension_travel = runMethod @"set_suspension_travel"
+
+set_switch_mode :: Method "set_switch_mode" cls sig => cls -> sig
+set_switch_mode = runMethod @"set_switch_mode"
+
+set_symbol_prefix ::
+                    Method "set_symbol_prefix" cls sig => cls -> sig
+set_symbol_prefix = runMethod @"set_symbol_prefix"
+
+set_sync_to_physics ::
+                      Method "set_sync_to_physics" cls sig => cls -> sig
+set_sync_to_physics = runMethod @"set_sync_to_physics"
+
+set_syntax_coloring ::
+                      Method "set_syntax_coloring" cls sig => cls -> sig
+set_syntax_coloring = runMethod @"set_syntax_coloring"
+
+set_tab_align :: Method "set_tab_align" cls sig => cls -> sig
+set_tab_align = runMethod @"set_tab_align"
+
+set_tab_close_display_policy ::
+                               Method "set_tab_close_display_policy" cls sig => cls -> sig
+set_tab_close_display_policy
+  = runMethod @"set_tab_close_display_policy"
+
+set_tab_disabled :: Method "set_tab_disabled" cls sig => cls -> sig
+set_tab_disabled = runMethod @"set_tab_disabled"
+
+set_tab_icon :: Method "set_tab_icon" cls sig => cls -> sig
+set_tab_icon = runMethod @"set_tab_icon"
+
+set_tab_size :: Method "set_tab_size" cls sig => cls -> sig
+set_tab_size = runMethod @"set_tab_size"
+
+set_tab_title :: Method "set_tab_title" cls sig => cls -> sig
+set_tab_title = runMethod @"set_tab_title"
+
+set_table_column_expand ::
+                          Method "set_table_column_expand" cls sig => cls -> sig
+set_table_column_expand = runMethod @"set_table_column_expand"
+
+set_tabs_rearrange_group ::
+                           Method "set_tabs_rearrange_group" cls sig => cls -> sig
+set_tabs_rearrange_group = runMethod @"set_tabs_rearrange_group"
+
+set_tabs_visible :: Method "set_tabs_visible" cls sig => cls -> sig
+set_tabs_visible = runMethod @"set_tabs_visible"
+
+set_tangent :: Method "set_tangent" cls sig => cls -> sig
+set_tangent = runMethod @"set_tangent"
+
+set_tap1_active :: Method "set_tap1_active" cls sig => cls -> sig
+set_tap1_active = runMethod @"set_tap1_active"
+
+set_tap1_delay_ms ::
+                    Method "set_tap1_delay_ms" cls sig => cls -> sig
+set_tap1_delay_ms = runMethod @"set_tap1_delay_ms"
+
+set_tap1_level_db ::
+                    Method "set_tap1_level_db" cls sig => cls -> sig
+set_tap1_level_db = runMethod @"set_tap1_level_db"
+
+set_tap1_pan :: Method "set_tap1_pan" cls sig => cls -> sig
+set_tap1_pan = runMethod @"set_tap1_pan"
+
+set_tap2_active :: Method "set_tap2_active" cls sig => cls -> sig
+set_tap2_active = runMethod @"set_tap2_active"
+
+set_tap2_delay_ms ::
+                    Method "set_tap2_delay_ms" cls sig => cls -> sig
+set_tap2_delay_ms = runMethod @"set_tap2_delay_ms"
+
+set_tap2_level_db ::
+                    Method "set_tap2_level_db" cls sig => cls -> sig
+set_tap2_level_db = runMethod @"set_tap2_level_db"
+
+set_tap2_pan :: Method "set_tap2_pan" cls sig => cls -> sig
+set_tap2_pan = runMethod @"set_tap2_pan"
+
+set_target :: Method "set_target" cls sig => cls -> sig
+set_target = runMethod @"set_target"
+
+set_target_fps :: Method "set_target_fps" cls sig => cls -> sig
+set_target_fps = runMethod @"set_target_fps"
+
+set_target_node :: Method "set_target_node" cls sig => cls -> sig
+set_target_node = runMethod @"set_target_node"
+
+set_target_path :: Method "set_target_path" cls sig => cls -> sig
+set_target_path = runMethod @"set_target_path"
+
+set_target_peer :: Method "set_target_peer" cls sig => cls -> sig
+set_target_peer = runMethod @"set_target_peer"
+
+set_target_transform ::
+                       Method "set_target_transform" cls sig => cls -> sig
+set_target_transform = runMethod @"set_target_transform"
+
+set_text :: Method "set_text" cls sig => cls -> sig
+set_text = runMethod @"set_text"
+
+set_text_align :: Method "set_text_align" cls sig => cls -> sig
+set_text_align = runMethod @"set_text_align"
+
+set_texture :: Method "set_texture" cls sig => cls -> sig
+set_texture = runMethod @"set_texture"
+
+set_texture_mode :: Method "set_texture_mode" cls sig => cls -> sig
+set_texture_mode = runMethod @"set_texture_mode"
+
+set_texture_offset ::
+                     Method "set_texture_offset" cls sig => cls -> sig
+set_texture_offset = runMethod @"set_texture_offset"
+
+set_texture_pressed ::
+                      Method "set_texture_pressed" cls sig => cls -> sig
+set_texture_pressed = runMethod @"set_texture_pressed"
+
+set_texture_rotation ::
+                       Method "set_texture_rotation" cls sig => cls -> sig
+set_texture_rotation = runMethod @"set_texture_rotation"
+
+set_texture_rotation_degrees ::
+                               Method "set_texture_rotation_degrees" cls sig => cls -> sig
+set_texture_rotation_degrees
+  = runMethod @"set_texture_rotation_degrees"
+
+set_texture_scale ::
+                    Method "set_texture_scale" cls sig => cls -> sig
+set_texture_scale = runMethod @"set_texture_scale"
+
+set_texture_size :: Method "set_texture_size" cls sig => cls -> sig
+set_texture_size = runMethod @"set_texture_size"
+
+set_texture_type :: Method "set_texture_type" cls sig => cls -> sig
+set_texture_type = runMethod @"set_texture_type"
+
+set_theme :: Method "set_theme" cls sig => cls -> sig
+set_theme = runMethod @"set_theme"
+
+set_thickness :: Method "set_thickness" cls sig => cls -> sig
+set_thickness = runMethod @"set_thickness"
+
+set_thread_name :: Method "set_thread_name" cls sig => cls -> sig
+set_thread_name = runMethod @"set_thread_name"
+
+set_threshold :: Method "set_threshold" cls sig => cls -> sig
+set_threshold = runMethod @"set_threshold"
+
+set_threshold_db :: Method "set_threshold_db" cls sig => cls -> sig
+set_threshold_db = runMethod @"set_threshold_db"
+
+set_ticks :: Method "set_ticks" cls sig => cls -> sig
+set_ticks = runMethod @"set_ticks"
+
+set_ticks_on_borders ::
+                       Method "set_ticks_on_borders" cls sig => cls -> sig
+set_ticks_on_borders = runMethod @"set_ticks_on_borders"
+
+set_tile_origin :: Method "set_tile_origin" cls sig => cls -> sig
+set_tile_origin = runMethod @"set_tile_origin"
+
+set_tileset :: Method "set_tileset" cls sig => cls -> sig
+set_tileset = runMethod @"set_tileset"
+
+set_time_left :: Method "set_time_left" cls sig => cls -> sig
+set_time_left = runMethod @"set_time_left"
+
+set_time_pullout :: Method "set_time_pullout" cls sig => cls -> sig
+set_time_pullout = runMethod @"set_time_pullout"
+
+set_time_scale :: Method "set_time_scale" cls sig => cls -> sig
+set_time_scale = runMethod @"set_time_scale"
+
+set_timer_process_mode ::
+                         Method "set_timer_process_mode" cls sig => cls -> sig
+set_timer_process_mode = runMethod @"set_timer_process_mode"
+
+set_tint_over :: Method "set_tint_over" cls sig => cls -> sig
+set_tint_over = runMethod @"set_tint_over"
+
+set_tint_progress ::
+                    Method "set_tint_progress" cls sig => cls -> sig
+set_tint_progress = runMethod @"set_tint_progress"
+
+set_tint_under :: Method "set_tint_under" cls sig => cls -> sig
+set_tint_under = runMethod @"set_tint_under"
+
+set_tip_bone :: Method "set_tip_bone" cls sig => cls -> sig
+set_tip_bone = runMethod @"set_tip_bone"
+
+set_title :: Method "set_title" cls sig => cls -> sig
+set_title = runMethod @"set_title"
+
+set_to_cell_xform ::
+                    Method "set_to_cell_xform" cls sig => cls -> sig
+set_to_cell_xform = runMethod @"set_to_cell_xform"
+
+set_toggle_mode :: Method "set_toggle_mode" cls sig => cls -> sig
+set_toggle_mode = runMethod @"set_toggle_mode"
+
+set_tonemap_auto_exposure ::
+                            Method "set_tonemap_auto_exposure" cls sig => cls -> sig
+set_tonemap_auto_exposure = runMethod @"set_tonemap_auto_exposure"
+
+set_tonemap_auto_exposure_grey ::
+                                 Method "set_tonemap_auto_exposure_grey" cls sig => cls -> sig
+set_tonemap_auto_exposure_grey
+  = runMethod @"set_tonemap_auto_exposure_grey"
+
+set_tonemap_auto_exposure_max ::
+                                Method "set_tonemap_auto_exposure_max" cls sig => cls -> sig
+set_tonemap_auto_exposure_max
+  = runMethod @"set_tonemap_auto_exposure_max"
+
+set_tonemap_auto_exposure_min ::
+                                Method "set_tonemap_auto_exposure_min" cls sig => cls -> sig
+set_tonemap_auto_exposure_min
+  = runMethod @"set_tonemap_auto_exposure_min"
+
+set_tonemap_auto_exposure_speed ::
+                                  Method "set_tonemap_auto_exposure_speed" cls sig => cls -> sig
+set_tonemap_auto_exposure_speed
+  = runMethod @"set_tonemap_auto_exposure_speed"
+
+set_tonemap_exposure ::
+                       Method "set_tonemap_exposure" cls sig => cls -> sig
+set_tonemap_exposure = runMethod @"set_tonemap_exposure"
+
+set_tonemap_white ::
+                    Method "set_tonemap_white" cls sig => cls -> sig
+set_tonemap_white = runMethod @"set_tonemap_white"
+
+set_tonemapper :: Method "set_tonemapper" cls sig => cls -> sig
+set_tonemapper = runMethod @"set_tonemapper"
+
+set_tooltip :: Method "set_tooltip" cls sig => cls -> sig
+set_tooltip = runMethod @"set_tooltip"
+
+set_top_radius :: Method "set_top_radius" cls sig => cls -> sig
+set_top_radius = runMethod @"set_top_radius"
+
+set_total_mass :: Method "set_total_mass" cls sig => cls -> sig
+set_total_mass = runMethod @"set_total_mass"
+
+set_track_physics_step ::
+                         Method "set_track_physics_step" cls sig => cls -> sig
+set_track_physics_step = runMethod @"set_track_physics_step"
+
+set_trail_color_modifier ::
+                           Method "set_trail_color_modifier" cls sig => cls -> sig
+set_trail_color_modifier = runMethod @"set_trail_color_modifier"
+
+set_trail_divisor ::
+                    Method "set_trail_divisor" cls sig => cls -> sig
+set_trail_divisor = runMethod @"set_trail_divisor"
+
+set_trail_size_modifier ::
+                          Method "set_trail_size_modifier" cls sig => cls -> sig
+set_trail_size_modifier = runMethod @"set_trail_size_modifier"
+
+set_transfer_channel ::
+                       Method "set_transfer_channel" cls sig => cls -> sig
+set_transfer_channel = runMethod @"set_transfer_channel"
+
+set_transfer_mode ::
+                    Method "set_transfer_mode" cls sig => cls -> sig
+set_transfer_mode = runMethod @"set_transfer_mode"
+
+set_transform :: Method "set_transform" cls sig => cls -> sig
+set_transform = runMethod @"set_transform"
+
+set_transform_format ::
+                       Method "set_transform_format" cls sig => cls -> sig
+set_transform_format = runMethod @"set_transform_format"
+
+set_translation :: Method "set_translation" cls sig => cls -> sig
+set_translation = runMethod @"set_translation"
+
+set_transmission :: Method "set_transmission" cls sig => cls -> sig
+set_transmission = runMethod @"set_transmission"
+
+set_transparent_background ::
+                             Method "set_transparent_background" cls sig => cls -> sig
+set_transparent_background
+  = runMethod @"set_transparent_background"
+
+set_tree_root :: Method "set_tree_root" cls sig => cls -> sig
+set_tree_root = runMethod @"set_tree_root"
+
+set_tween_process_mode ::
+                         Method "set_tween_process_mode" cls sig => cls -> sig
+set_tween_process_mode = runMethod @"set_tween_process_mode"
+
+set_typed :: Method "set_typed" cls sig => cls -> sig
+set_typed = runMethod @"set_typed"
+
+set_under_texture ::
+                    Method "set_under_texture" cls sig => cls -> sig
+set_under_texture = runMethod @"set_under_texture"
+
+set_underline_mode ::
+                     Method "set_underline_mode" cls sig => cls -> sig
+set_underline_mode = runMethod @"set_underline_mode"
+
+set_unicode :: Method "set_unicode" cls sig => cls -> sig
+set_unicode = runMethod @"set_unicode"
+
+set_uniform_name :: Method "set_uniform_name" cls sig => cls -> sig
+set_uniform_name = runMethod @"set_uniform_name"
+
+set_unit_db :: Method "set_unit_db" cls sig => cls -> sig
+set_unit_db = runMethod @"set_unit_db"
+
+set_unit_offset :: Method "set_unit_offset" cls sig => cls -> sig
+set_unit_offset = runMethod @"set_unit_offset"
+
+set_unit_size :: Method "set_unit_size" cls sig => cls -> sig
+set_unit_size = runMethod @"set_unit_size"
+
+set_up_vector :: Method "set_up_vector" cls sig => cls -> sig
+set_up_vector = runMethod @"set_up_vector"
+
+set_up_vector_enabled ::
+                        Method "set_up_vector_enabled" cls sig => cls -> sig
+set_up_vector_enabled = runMethod @"set_up_vector_enabled"
+
+set_update_mode :: Method "set_update_mode" cls sig => cls -> sig
+set_update_mode = runMethod @"set_update_mode"
+
+set_update_position ::
+                      Method "set_update_position" cls sig => cls -> sig
+set_update_position = runMethod @"set_update_position"
+
+set_update_rotation ::
+                      Method "set_update_rotation" cls sig => cls -> sig
+set_update_rotation = runMethod @"set_update_rotation"
+
+set_update_scale :: Method "set_update_scale" cls sig => cls -> sig
+set_update_scale = runMethod @"set_update_scale"
+
+set_uppercase :: Method "set_uppercase" cls sig => cls -> sig
+set_uppercase = runMethod @"set_uppercase"
+
+set_usage :: Method "set_usage" cls sig => cls -> sig
+set_usage = runMethod @"set_usage"
+
+set_use_arvr :: Method "set_use_arvr" cls sig => cls -> sig
+set_use_arvr = runMethod @"set_use_arvr"
+
+set_use_as_steering ::
+                      Method "set_use_as_steering" cls sig => cls -> sig
+set_use_as_steering = runMethod @"set_use_as_steering"
+
+set_use_as_traction ::
+                      Method "set_use_as_traction" cls sig => cls -> sig
+set_use_as_traction = runMethod @"set_use_as_traction"
+
+set_use_bbcode :: Method "set_use_bbcode" cls sig => cls -> sig
+set_use_bbcode = runMethod @"set_use_bbcode"
+
+set_use_collision ::
+                    Method "set_use_collision" cls sig => cls -> sig
+set_use_collision = runMethod @"set_use_collision"
+
+set_use_continuous_collision_detection ::
+                                         Method "set_use_continuous_collision_detection" cls sig =>
+                                         cls -> sig
+set_use_continuous_collision_detection
+  = runMethod @"set_use_continuous_collision_detection"
+
+set_use_custom_integrator ::
+                            Method "set_use_custom_integrator" cls sig => cls -> sig
+set_use_custom_integrator = runMethod @"set_use_custom_integrator"
+
+set_use_default_args ::
+                       Method "set_use_default_args" cls sig => cls -> sig
+set_use_default_args = runMethod @"set_use_default_args"
+
+set_use_file_access_save_and_swap ::
+                                    Method "set_use_file_access_save_and_swap" cls sig => cls -> sig
+set_use_file_access_save_and_swap
+  = runMethod @"set_use_file_access_save_and_swap"
+
+set_use_filter :: Method "set_use_filter" cls sig => cls -> sig
+set_use_filter = runMethod @"set_use_filter"
+
+set_use_font_oversampling ::
+                            Method "set_use_font_oversampling" cls sig => cls -> sig
+set_use_font_oversampling = runMethod @"set_use_font_oversampling"
+
+set_use_global_coordinates ::
+                             Method "set_use_global_coordinates" cls sig => cls -> sig
+set_use_global_coordinates
+  = runMethod @"set_use_global_coordinates"
+
+set_use_local_coordinates ::
+                            Method "set_use_local_coordinates" cls sig => cls -> sig
+set_use_local_coordinates = runMethod @"set_use_local_coordinates"
+
+set_use_magnet :: Method "set_use_magnet" cls sig => cls -> sig
+set_use_magnet = runMethod @"set_use_magnet"
+
+set_use_mipmaps :: Method "set_use_mipmaps" cls sig => cls -> sig
+set_use_mipmaps = runMethod @"set_use_mipmaps"
+
+set_use_own_world ::
+                    Method "set_use_own_world" cls sig => cls -> sig
+set_use_own_world = runMethod @"set_use_own_world"
+
+set_use_parent_material ::
+                          Method "set_use_parent_material" cls sig => cls -> sig
+set_use_parent_material = runMethod @"set_use_parent_material"
+
+set_use_reverb_bus ::
+                     Method "set_use_reverb_bus" cls sig => cls -> sig
+set_use_reverb_bus = runMethod @"set_use_reverb_bus"
+
+set_use_rounded_values ::
+                         Method "set_use_rounded_values" cls sig => cls -> sig
+set_use_rounded_values = runMethod @"set_use_rounded_values"
+
+set_use_snap :: Method "set_use_snap" cls sig => cls -> sig
+set_use_snap = runMethod @"set_use_snap"
+
+set_use_sync :: Method "set_use_sync" cls sig => cls -> sig
+set_use_sync = runMethod @"set_use_sync"
+
+set_use_threads :: Method "set_use_threads" cls sig => cls -> sig
+set_use_threads = runMethod @"set_use_threads"
+
+set_use_top_left :: Method "set_use_top_left" cls sig => cls -> sig
+set_use_top_left = runMethod @"set_use_top_left"
+
+set_use_vsync :: Method "set_use_vsync" cls sig => cls -> sig
+set_use_vsync = runMethod @"set_use_vsync"
+
+set_uv :: Method "set_uv" cls sig => cls -> sig
+set_uv = runMethod @"set_uv"
+
+set_uv1_offset :: Method "set_uv1_offset" cls sig => cls -> sig
+set_uv1_offset = runMethod @"set_uv1_offset"
+
+set_uv1_scale :: Method "set_uv1_scale" cls sig => cls -> sig
+set_uv1_scale = runMethod @"set_uv1_scale"
+
+set_uv1_triplanar_blend_sharpness ::
+                                    Method "set_uv1_triplanar_blend_sharpness" cls sig => cls -> sig
+set_uv1_triplanar_blend_sharpness
+  = runMethod @"set_uv1_triplanar_blend_sharpness"
+
+set_uv2 :: Method "set_uv2" cls sig => cls -> sig
+set_uv2 = runMethod @"set_uv2"
+
+set_uv2_offset :: Method "set_uv2_offset" cls sig => cls -> sig
+set_uv2_offset = runMethod @"set_uv2_offset"
+
+set_uv2_scale :: Method "set_uv2_scale" cls sig => cls -> sig
+set_uv2_scale = runMethod @"set_uv2_scale"
+
+set_uv2_triplanar_blend_sharpness ::
+                                    Method "set_uv2_triplanar_blend_sharpness" cls sig => cls -> sig
+set_uv2_triplanar_blend_sharpness
+  = runMethod @"set_uv2_triplanar_blend_sharpness"
+
+set_v_axis_stretch_mode ::
+                          Method "set_v_axis_stretch_mode" cls sig => cls -> sig
+set_v_axis_stretch_mode = runMethod @"set_v_axis_stretch_mode"
+
+set_v_drag_enabled ::
+                     Method "set_v_drag_enabled" cls sig => cls -> sig
+set_v_drag_enabled = runMethod @"set_v_drag_enabled"
+
+set_v_frames :: Method "set_v_frames" cls sig => cls -> sig
+set_v_frames = runMethod @"set_v_frames"
+
+set_v_grow_direction ::
+                       Method "set_v_grow_direction" cls sig => cls -> sig
+set_v_grow_direction = runMethod @"set_v_grow_direction"
+
+set_v_offset :: Method "set_v_offset" cls sig => cls -> sig
+set_v_offset = runMethod @"set_v_offset"
+
+set_v_scroll :: Method "set_v_scroll" cls sig => cls -> sig
+set_v_scroll = runMethod @"set_v_scroll"
+
+set_v_scroll_speed ::
+                     Method "set_v_scroll_speed" cls sig => cls -> sig
+set_v_scroll_speed = runMethod @"set_v_scroll_speed"
+
+set_v_size_flags :: Method "set_v_size_flags" cls sig => cls -> sig
+set_v_size_flags = runMethod @"set_v_size_flags"
+
+set_validate :: Method "set_validate" cls sig => cls -> sig
+set_validate = runMethod @"set_validate"
+
+set_valign :: Method "set_valign" cls sig => cls -> sig
+set_valign = runMethod @"set_valign"
+
+set_value :: Method "set_value" cls sig => cls -> sig
+set_value = runMethod @"set_value"
+
+set_value_label :: Method "set_value_label" cls sig => cls -> sig
+set_value_label = runMethod @"set_value_label"
+
+set_var_name :: Method "set_var_name" cls sig => cls -> sig
+set_var_name = runMethod @"set_var_name"
+
+set_var_type :: Method "set_var_type" cls sig => cls -> sig
+set_var_type = runMethod @"set_var_type"
+
+set_variable :: Method "set_variable" cls sig => cls -> sig
+set_variable = runMethod @"set_variable"
+
+set_variable_default_value ::
+                             Method "set_variable_default_value" cls sig => cls -> sig
+set_variable_default_value
+  = runMethod @"set_variable_default_value"
+
+set_variable_export ::
+                      Method "set_variable_export" cls sig => cls -> sig
+set_variable_export = runMethod @"set_variable_export"
+
+set_variable_info ::
+                    Method "set_variable_info" cls sig => cls -> sig
+set_variable_info = runMethod @"set_variable_info"
+
+set_verify_ssl_enabled ::
+                         Method "set_verify_ssl_enabled" cls sig => cls -> sig
+set_verify_ssl_enabled = runMethod @"set_verify_ssl_enabled"
+
+set_vertex :: Method "set_vertex" cls sig => cls -> sig
+set_vertex = runMethod @"set_vertex"
+
+set_vertex_bones :: Method "set_vertex_bones" cls sig => cls -> sig
+set_vertex_bones = runMethod @"set_vertex_bones"
+
+set_vertex_color :: Method "set_vertex_color" cls sig => cls -> sig
+set_vertex_color = runMethod @"set_vertex_color"
+
+set_vertex_colors ::
+                    Method "set_vertex_colors" cls sig => cls -> sig
+set_vertex_colors = runMethod @"set_vertex_colors"
+
+set_vertex_meta :: Method "set_vertex_meta" cls sig => cls -> sig
+set_vertex_meta = runMethod @"set_vertex_meta"
+
+set_vertex_normal ::
+                    Method "set_vertex_normal" cls sig => cls -> sig
+set_vertex_normal = runMethod @"set_vertex_normal"
+
+set_vertex_tangent ::
+                     Method "set_vertex_tangent" cls sig => cls -> sig
+set_vertex_tangent = runMethod @"set_vertex_tangent"
+
+set_vertex_uv :: Method "set_vertex_uv" cls sig => cls -> sig
+set_vertex_uv = runMethod @"set_vertex_uv"
+
+set_vertex_uv2 :: Method "set_vertex_uv2" cls sig => cls -> sig
+set_vertex_uv2 = runMethod @"set_vertex_uv2"
+
+set_vertex_weights ::
+                     Method "set_vertex_weights" cls sig => cls -> sig
+set_vertex_weights = runMethod @"set_vertex_weights"
+
+set_vertical :: Method "set_vertical" cls sig => cls -> sig
+set_vertical = runMethod @"set_vertical"
+
+set_vertices :: Method "set_vertices" cls sig => cls -> sig
+set_vertices = runMethod @"set_vertices"
+
+set_verts_per_poly ::
+                     Method "set_verts_per_poly" cls sig => cls -> sig
+set_verts_per_poly = runMethod @"set_verts_per_poly"
+
+set_vflip :: Method "set_vflip" cls sig => cls -> sig
+set_vflip = runMethod @"set_vflip"
+
+set_vframes :: Method "set_vframes" cls sig => cls -> sig
+set_vframes = runMethod @"set_vframes"
+
+set_viewport_path_in_scene ::
+                             Method "set_viewport_path_in_scene" cls sig => cls -> sig
+set_viewport_path_in_scene
+  = runMethod @"set_viewport_path_in_scene"
+
+set_visibility_aabb ::
+                      Method "set_visibility_aabb" cls sig => cls -> sig
+set_visibility_aabb = runMethod @"set_visibility_aabb"
+
+set_visibility_mode ::
+                      Method "set_visibility_mode" cls sig => cls -> sig
+set_visibility_mode = runMethod @"set_visibility_mode"
+
+set_visibility_rect ::
+                      Method "set_visibility_rect" cls sig => cls -> sig
+set_visibility_rect = runMethod @"set_visibility_rect"
+
+set_visible :: Method "set_visible" cls sig => cls -> sig
+set_visible = runMethod @"set_visible"
+
+set_visible_characters ::
+                         Method "set_visible_characters" cls sig => cls -> sig
+set_visible_characters = runMethod @"set_visible_characters"
+
+set_voice_count :: Method "set_voice_count" cls sig => cls -> sig
+set_voice_count = runMethod @"set_voice_count"
+
+set_voice_cutoff_hz ::
+                      Method "set_voice_cutoff_hz" cls sig => cls -> sig
+set_voice_cutoff_hz = runMethod @"set_voice_cutoff_hz"
+
+set_voice_delay_ms ::
+                     Method "set_voice_delay_ms" cls sig => cls -> sig
+set_voice_delay_ms = runMethod @"set_voice_delay_ms"
+
+set_voice_depth_ms ::
+                     Method "set_voice_depth_ms" cls sig => cls -> sig
+set_voice_depth_ms = runMethod @"set_voice_depth_ms"
+
+set_voice_level_db ::
+                     Method "set_voice_level_db" cls sig => cls -> sig
+set_voice_level_db = runMethod @"set_voice_level_db"
+
+set_voice_pan :: Method "set_voice_pan" cls sig => cls -> sig
+set_voice_pan = runMethod @"set_voice_pan"
+
+set_voice_rate_hz ::
+                    Method "set_voice_rate_hz" cls sig => cls -> sig
+set_voice_rate_hz = runMethod @"set_voice_rate_hz"
+
+set_volume :: Method "set_volume" cls sig => cls -> sig
+set_volume = runMethod @"set_volume"
+
+set_volume_db :: Method "set_volume_db" cls sig => cls -> sig
+set_volume_db = runMethod @"set_volume_db"
+
+set_volume_stiffness ::
+                       Method "set_volume_stiffness" cls sig => cls -> sig
+set_volume_stiffness = runMethod @"set_volume_stiffness"
+
+set_wait_time :: Method "set_wait_time" cls sig => cls -> sig
+set_wait_time = runMethod @"set_wait_time"
+
+set_weight :: Method "set_weight" cls sig => cls -> sig
+set_weight = runMethod @"set_weight"
+
+set_wet :: Method "set_wet" cls sig => cls -> sig
+set_wet = runMethod @"set_wet"
+
+set_width :: Method "set_width" cls sig => cls -> sig
+set_width = runMethod @"set_width"
+
+set_window_always_on_top ::
+                           Method "set_window_always_on_top" cls sig => cls -> sig
+set_window_always_on_top = runMethod @"set_window_always_on_top"
+
+set_window_fullscreen ::
+                        Method "set_window_fullscreen" cls sig => cls -> sig
+set_window_fullscreen = runMethod @"set_window_fullscreen"
+
+set_window_layout ::
+                    Method "set_window_layout" cls sig => cls -> sig
+set_window_layout = runMethod @"set_window_layout"
+
+set_window_maximized ::
+                       Method "set_window_maximized" cls sig => cls -> sig
+set_window_maximized = runMethod @"set_window_maximized"
+
+set_window_minimized ::
+                       Method "set_window_minimized" cls sig => cls -> sig
+set_window_minimized = runMethod @"set_window_minimized"
+
+set_window_per_pixel_transparency_enabled ::
+                                            Method "set_window_per_pixel_transparency_enabled" cls
+                                              sig =>
+                                            cls -> sig
+set_window_per_pixel_transparency_enabled
+  = runMethod @"set_window_per_pixel_transparency_enabled"
+
+set_window_position ::
+                      Method "set_window_position" cls sig => cls -> sig
+set_window_position = runMethod @"set_window_position"
+
+set_window_resizable ::
+                       Method "set_window_resizable" cls sig => cls -> sig
+set_window_resizable = runMethod @"set_window_resizable"
+
+set_window_size :: Method "set_window_size" cls sig => cls -> sig
+set_window_size = runMethod @"set_window_size"
+
+set_window_title :: Method "set_window_title" cls sig => cls -> sig
+set_window_title = runMethod @"set_window_title"
+
+set_world :: Method "set_world" cls sig => cls -> sig
+set_world = runMethod @"set_world"
+
+set_world_2d :: Method "set_world_2d" cls sig => cls -> sig
+set_world_2d = runMethod @"set_world_2d"
+
+set_world_scale :: Method "set_world_scale" cls sig => cls -> sig
+set_world_scale = runMethod @"set_world_scale"
+
+set_wrap_enabled :: Method "set_wrap_enabled" cls sig => cls -> sig
+set_wrap_enabled = runMethod @"set_wrap_enabled"
+
+set_write_mode :: Method "set_write_mode" cls sig => cls -> sig
+set_write_mode = runMethod @"set_write_mode"
+
+set_x_label :: Method "set_x_label" cls sig => cls -> sig
+set_x_label = runMethod @"set_x_label"
+
+set_xfade_time :: Method "set_xfade_time" cls sig => cls -> sig
+set_xfade_time = runMethod @"set_xfade_time"
+
+set_y_label :: Method "set_y_label" cls sig => cls -> sig
+set_y_label = runMethod @"set_y_label"
+
+set_y_sort_mode :: Method "set_y_sort_mode" cls sig => cls -> sig
+set_y_sort_mode = runMethod @"set_y_sort_mode"
+
+set_yield_mode :: Method "set_yield_mode" cls sig => cls -> sig
+set_yield_mode = runMethod @"set_yield_mode"
+
+set_z_as_relative ::
+                    Method "set_z_as_relative" cls sig => cls -> sig
+set_z_as_relative = runMethod @"set_z_as_relative"
+
+set_z_index :: Method "set_z_index" cls sig => cls -> sig
+set_z_index = runMethod @"set_z_index"
+
+set_z_range_max :: Method "set_z_range_max" cls sig => cls -> sig
+set_z_range_max = runMethod @"set_z_range_max"
+
+set_z_range_min :: Method "set_z_range_min" cls sig => cls -> sig
+set_z_range_min = runMethod @"set_z_range_min"
+
+set_zero_y :: Method "set_zero_y" cls sig => cls -> sig
+set_zero_y = runMethod @"set_zero_y"
+
+set_zfar :: Method "set_zfar" cls sig => cls -> sig
+set_zfar = runMethod @"set_zfar"
+
+set_znear :: Method "set_znear" cls sig => cls -> sig
+set_znear = runMethod @"set_znear"
+
+set_zoom :: Method "set_zoom" cls sig => cls -> sig
+set_zoom = runMethod @"set_zoom"
+
+setup :: Method "setup" cls sig => cls -> sig
+setup = runMethod @"setup"
+
+setup_local_to_scene ::
+                       Method "setup_local_to_scene" cls sig => cls -> sig
+setup_local_to_scene = runMethod @"setup_local_to_scene"
+
+shader_create :: Method "shader_create" cls sig => cls -> sig
+shader_create = runMethod @"shader_create"
+
+shader_get_code :: Method "shader_get_code" cls sig => cls -> sig
+shader_get_code = runMethod @"shader_get_code"
+
+shader_get_default_texture_param ::
+                                   Method "shader_get_default_texture_param" cls sig => cls -> sig
+shader_get_default_texture_param
+  = runMethod @"shader_get_default_texture_param"
+
+shader_get_param_list ::
+                        Method "shader_get_param_list" cls sig => cls -> sig
+shader_get_param_list = runMethod @"shader_get_param_list"
+
+shader_set_code :: Method "shader_set_code" cls sig => cls -> sig
+shader_set_code = runMethod @"shader_set_code"
+
+shader_set_default_texture_param ::
+                                   Method "shader_set_default_texture_param" cls sig => cls -> sig
+shader_set_default_texture_param
+  = runMethod @"shader_set_default_texture_param"
+
+shape_create :: Method "shape_create" cls sig => cls -> sig
+shape_create = runMethod @"shape_create"
+
+shape_find_owner :: Method "shape_find_owner" cls sig => cls -> sig
+shape_find_owner = runMethod @"shape_find_owner"
+
+shape_get_data :: Method "shape_get_data" cls sig => cls -> sig
+shape_get_data = runMethod @"shape_get_data"
+
+shape_get_type :: Method "shape_get_type" cls sig => cls -> sig
+shape_get_type = runMethod @"shape_get_type"
+
+shape_owner_add_shape ::
+                        Method "shape_owner_add_shape" cls sig => cls -> sig
+shape_owner_add_shape = runMethod @"shape_owner_add_shape"
+
+shape_owner_clear_shapes ::
+                           Method "shape_owner_clear_shapes" cls sig => cls -> sig
+shape_owner_clear_shapes = runMethod @"shape_owner_clear_shapes"
+
+shape_owner_get_owner ::
+                        Method "shape_owner_get_owner" cls sig => cls -> sig
+shape_owner_get_owner = runMethod @"shape_owner_get_owner"
+
+shape_owner_get_shape ::
+                        Method "shape_owner_get_shape" cls sig => cls -> sig
+shape_owner_get_shape = runMethod @"shape_owner_get_shape"
+
+shape_owner_get_shape_count ::
+                              Method "shape_owner_get_shape_count" cls sig => cls -> sig
+shape_owner_get_shape_count
+  = runMethod @"shape_owner_get_shape_count"
+
+shape_owner_get_shape_index ::
+                              Method "shape_owner_get_shape_index" cls sig => cls -> sig
+shape_owner_get_shape_index
+  = runMethod @"shape_owner_get_shape_index"
+
+shape_owner_get_transform ::
+                            Method "shape_owner_get_transform" cls sig => cls -> sig
+shape_owner_get_transform = runMethod @"shape_owner_get_transform"
+
+shape_owner_remove_shape ::
+                           Method "shape_owner_remove_shape" cls sig => cls -> sig
+shape_owner_remove_shape = runMethod @"shape_owner_remove_shape"
+
+shape_owner_set_disabled ::
+                           Method "shape_owner_set_disabled" cls sig => cls -> sig
+shape_owner_set_disabled = runMethod @"shape_owner_set_disabled"
+
+shape_owner_set_one_way_collision ::
+                                    Method "shape_owner_set_one_way_collision" cls sig => cls -> sig
+shape_owner_set_one_way_collision
+  = runMethod @"shape_owner_set_one_way_collision"
+
+shape_owner_set_transform ::
+                            Method "shape_owner_set_transform" cls sig => cls -> sig
+shape_owner_set_transform = runMethod @"shape_owner_set_transform"
+
+shape_set_data :: Method "shape_set_data" cls sig => cls -> sig
+shape_set_data = runMethod @"shape_set_data"
+
+share :: Method "share" cls sig => cls -> sig
+share = runMethod @"share"
+
+shell_open :: Method "shell_open" cls sig => cls -> sig
+shell_open = runMethod @"shell_open"
+
+shortcut_match :: Method "shortcut_match" cls sig => cls -> sig
+shortcut_match = runMethod @"shortcut_match"
+
+should_load_once :: Method "should_load_once" cls sig => cls -> sig
+should_load_once = runMethod @"should_load_once"
+
+show :: Method "show" cls sig => cls -> sig
+show = runMethod @"show"
+
+show_modal :: Method "show_modal" cls sig => cls -> sig
+show_modal = runMethod @"show_modal"
+
+show_virtual_keyboard ::
+                        Method "show_virtual_keyboard" cls sig => cls -> sig
+show_virtual_keyboard = runMethod @"show_virtual_keyboard"
+
+shrink_x2 :: Method "shrink_x2" cls sig => cls -> sig
+shrink_x2 = runMethod @"shrink_x2"
+
+size :: Method "size" cls sig => cls -> sig
+size = runMethod @"size"
+
+skeleton_allocate ::
+                    Method "skeleton_allocate" cls sig => cls -> sig
+skeleton_allocate = runMethod @"skeleton_allocate"
+
+skeleton_bone_get_transform ::
+                              Method "skeleton_bone_get_transform" cls sig => cls -> sig
+skeleton_bone_get_transform
+  = runMethod @"skeleton_bone_get_transform"
+
+skeleton_bone_get_transform_2d ::
+                                 Method "skeleton_bone_get_transform_2d" cls sig => cls -> sig
+skeleton_bone_get_transform_2d
+  = runMethod @"skeleton_bone_get_transform_2d"
+
+skeleton_bone_set_transform ::
+                              Method "skeleton_bone_set_transform" cls sig => cls -> sig
+skeleton_bone_set_transform
+  = runMethod @"skeleton_bone_set_transform"
+
+skeleton_bone_set_transform_2d ::
+                                 Method "skeleton_bone_set_transform_2d" cls sig => cls -> sig
+skeleton_bone_set_transform_2d
+  = runMethod @"skeleton_bone_set_transform_2d"
+
+skeleton_create :: Method "skeleton_create" cls sig => cls -> sig
+skeleton_create = runMethod @"skeleton_create"
+
+skeleton_get_bone_count ::
+                          Method "skeleton_get_bone_count" cls sig => cls -> sig
+skeleton_get_bone_count = runMethod @"skeleton_get_bone_count"
+
+skip :: Method "skip" cls sig => cls -> sig
+skip = runMethod @"skip"
+
+skip_section :: Method "skip_section" cls sig => cls -> sig
+skip_section = runMethod @"skip_section"
+
+sky_create :: Method "sky_create" cls sig => cls -> sig
+sky_create = runMethod @"sky_create"
+
+sky_set_texture :: Method "sky_set_texture" cls sig => cls -> sig
+sky_set_texture = runMethod @"sky_set_texture"
+
+slider_joint_get_param ::
+                         Method "slider_joint_get_param" cls sig => cls -> sig
+slider_joint_get_param = runMethod @"slider_joint_get_param"
+
+slider_joint_set_param ::
+                         Method "slider_joint_set_param" cls sig => cls -> sig
+slider_joint_set_param = runMethod @"slider_joint_set_param"
+
+sort_items_by_text ::
+                     Method "sort_items_by_text" cls sig => cls -> sig
+sort_items_by_text = runMethod @"sort_items_by_text"
+
+space_create :: Method "space_create" cls sig => cls -> sig
+space_create = runMethod @"space_create"
+
+space_get_direct_state ::
+                         Method "space_get_direct_state" cls sig => cls -> sig
+space_get_direct_state = runMethod @"space_get_direct_state"
+
+space_get_param :: Method "space_get_param" cls sig => cls -> sig
+space_get_param = runMethod @"space_get_param"
+
+space_is_active :: Method "space_is_active" cls sig => cls -> sig
+space_is_active = runMethod @"space_is_active"
+
+space_set_active :: Method "space_set_active" cls sig => cls -> sig
+space_set_active = runMethod @"space_set_active"
+
+space_set_param :: Method "space_set_param" cls sig => cls -> sig
+space_set_param = runMethod @"space_set_param"
+
+spot_light_create ::
+                    Method "spot_light_create" cls sig => cls -> sig
+spot_light_create = runMethod @"spot_light_create"
+
+srgb_to_linear :: Method "srgb_to_linear" cls sig => cls -> sig
+srgb_to_linear = runMethod @"srgb_to_linear"
+
+start :: Method "start" cls sig => cls -> sig
+start = runMethod @"start"
+
+start_joy_vibration ::
+                      Method "start_joy_vibration" cls sig => cls -> sig
+start_joy_vibration = runMethod @"start_joy_vibration"
+
+stop :: Method "stop" cls sig => cls -> sig
+stop = runMethod @"stop"
+
+stop_all :: Method "stop_all" cls sig => cls -> sig
+stop_all = runMethod @"stop_all"
+
+stop_joy_vibration ::
+                     Method "stop_joy_vibration" cls sig => cls -> sig
+stop_joy_vibration = runMethod @"stop_joy_vibration"
+
+store_16 :: Method "store_16" cls sig => cls -> sig
+store_16 = runMethod @"store_16"
+
+store_32 :: Method "store_32" cls sig => cls -> sig
+store_32 = runMethod @"store_32"
+
+store_64 :: Method "store_64" cls sig => cls -> sig
+store_64 = runMethod @"store_64"
+
+store_8 :: Method "store_8" cls sig => cls -> sig
+store_8 = runMethod @"store_8"
+
+store_buffer :: Method "store_buffer" cls sig => cls -> sig
+store_buffer = runMethod @"store_buffer"
+
+store_double :: Method "store_double" cls sig => cls -> sig
+store_double = runMethod @"store_double"
+
+store_float :: Method "store_float" cls sig => cls -> sig
+store_float = runMethod @"store_float"
+
+store_line :: Method "store_line" cls sig => cls -> sig
+store_line = runMethod @"store_line"
+
+store_pascal_string ::
+                      Method "store_pascal_string" cls sig => cls -> sig
+store_pascal_string = runMethod @"store_pascal_string"
+
+store_real :: Method "store_real" cls sig => cls -> sig
+store_real = runMethod @"store_real"
+
+store_string :: Method "store_string" cls sig => cls -> sig
+store_string = runMethod @"store_string"
+
+store_var :: Method "store_var" cls sig => cls -> sig
+store_var = runMethod @"store_var"
+
+sub :: Method "sub" cls sig => cls -> sig
+sub = runMethod @"sub"
+
+surface_find_by_name ::
+                       Method "surface_find_by_name" cls sig => cls -> sig
+surface_find_by_name = runMethod @"surface_find_by_name"
+
+surface_get_array_index_len ::
+                              Method "surface_get_array_index_len" cls sig => cls -> sig
+surface_get_array_index_len
+  = runMethod @"surface_get_array_index_len"
+
+surface_get_array_len ::
+                        Method "surface_get_array_len" cls sig => cls -> sig
+surface_get_array_len = runMethod @"surface_get_array_len"
+
+surface_get_arrays ::
+                     Method "surface_get_arrays" cls sig => cls -> sig
+surface_get_arrays = runMethod @"surface_get_arrays"
+
+surface_get_blend_shape_arrays ::
+                                 Method "surface_get_blend_shape_arrays" cls sig => cls -> sig
+surface_get_blend_shape_arrays
+  = runMethod @"surface_get_blend_shape_arrays"
+
+surface_get_format ::
+                     Method "surface_get_format" cls sig => cls -> sig
+surface_get_format = runMethod @"surface_get_format"
+
+surface_get_material ::
+                       Method "surface_get_material" cls sig => cls -> sig
+surface_get_material = runMethod @"surface_get_material"
+
+surface_get_name :: Method "surface_get_name" cls sig => cls -> sig
+surface_get_name = runMethod @"surface_get_name"
+
+surface_get_primitive_type ::
+                             Method "surface_get_primitive_type" cls sig => cls -> sig
+surface_get_primitive_type
+  = runMethod @"surface_get_primitive_type"
+
+surface_remove :: Method "surface_remove" cls sig => cls -> sig
+surface_remove = runMethod @"surface_remove"
+
+surface_set_material ::
+                       Method "surface_set_material" cls sig => cls -> sig
+surface_set_material = runMethod @"surface_set_material"
+
+surface_set_name :: Method "surface_set_name" cls sig => cls -> sig
+surface_set_name = runMethod @"surface_set_name"
+
+surface_update_region ::
+                        Method "surface_update_region" cls sig => cls -> sig
+surface_update_region = runMethod @"surface_update_region"
+
+swap_bus_effects :: Method "swap_bus_effects" cls sig => cls -> sig
+swap_bus_effects = runMethod @"swap_bus_effects"
+
+sync :: Method "sync" cls sig => cls -> sig
+sync = runMethod @"sync"
+
+take_connection :: Method "take_connection" cls sig => cls -> sig
+take_connection = runMethod @"take_connection"
+
+take_over_path :: Method "take_over_path" cls sig => cls -> sig
+take_over_path = runMethod @"take_over_path"
+
+targeting_method :: Method "targeting_method" cls sig => cls -> sig
+targeting_method = runMethod @"targeting_method"
+
+targeting_property ::
+                     Method "targeting_property" cls sig => cls -> sig
+targeting_property = runMethod @"targeting_property"
+
+tell :: Method "tell" cls sig => cls -> sig
+tell = runMethod @"tell"
+
+terminate :: Method "terminate" cls sig => cls -> sig
+terminate = runMethod @"terminate"
+
+tessellate :: Method "tessellate" cls sig => cls -> sig
+tessellate = runMethod @"tessellate"
+
+test_mask :: Method "test_mask" cls sig => cls -> sig
+test_mask = runMethod @"test_mask"
+
+test_motion :: Method "test_motion" cls sig => cls -> sig
+test_motion = runMethod @"test_motion"
+
+test_move :: Method "test_move" cls sig => cls -> sig
+test_move = runMethod @"test_move"
+
+texture_allocate :: Method "texture_allocate" cls sig => cls -> sig
+texture_allocate = runMethod @"texture_allocate"
+
+texture_create :: Method "texture_create" cls sig => cls -> sig
+texture_create = runMethod @"texture_create"
+
+texture_create_from_image ::
+                            Method "texture_create_from_image" cls sig => cls -> sig
+texture_create_from_image = runMethod @"texture_create_from_image"
+
+texture_debug_usage ::
+                      Method "texture_debug_usage" cls sig => cls -> sig
+texture_debug_usage = runMethod @"texture_debug_usage"
+
+texture_get_data :: Method "texture_get_data" cls sig => cls -> sig
+texture_get_data = runMethod @"texture_get_data"
+
+texture_get_depth ::
+                    Method "texture_get_depth" cls sig => cls -> sig
+texture_get_depth = runMethod @"texture_get_depth"
+
+texture_get_flags ::
+                    Method "texture_get_flags" cls sig => cls -> sig
+texture_get_flags = runMethod @"texture_get_flags"
+
+texture_get_format ::
+                     Method "texture_get_format" cls sig => cls -> sig
+texture_get_format = runMethod @"texture_get_format"
+
+texture_get_height ::
+                     Method "texture_get_height" cls sig => cls -> sig
+texture_get_height = runMethod @"texture_get_height"
+
+texture_get_path :: Method "texture_get_path" cls sig => cls -> sig
+texture_get_path = runMethod @"texture_get_path"
+
+texture_get_texid ::
+                    Method "texture_get_texid" cls sig => cls -> sig
+texture_get_texid = runMethod @"texture_get_texid"
+
+texture_get_type :: Method "texture_get_type" cls sig => cls -> sig
+texture_get_type = runMethod @"texture_get_type"
+
+texture_get_width ::
+                    Method "texture_get_width" cls sig => cls -> sig
+texture_get_width = runMethod @"texture_get_width"
+
+texture_set_data :: Method "texture_set_data" cls sig => cls -> sig
+texture_set_data = runMethod @"texture_set_data"
+
+texture_set_data_partial ::
+                           Method "texture_set_data_partial" cls sig => cls -> sig
+texture_set_data_partial = runMethod @"texture_set_data_partial"
+
+texture_set_flags ::
+                    Method "texture_set_flags" cls sig => cls -> sig
+texture_set_flags = runMethod @"texture_set_flags"
+
+texture_set_path :: Method "texture_set_path" cls sig => cls -> sig
+texture_set_path = runMethod @"texture_set_path"
+
+texture_set_shrink_all_x2_on_set_data ::
+                                        Method "texture_set_shrink_all_x2_on_set_data" cls sig =>
+                                        cls -> sig
+texture_set_shrink_all_x2_on_set_data
+  = runMethod @"texture_set_shrink_all_x2_on_set_data"
+
+texture_set_size_override ::
+                            Method "texture_set_size_override" cls sig => cls -> sig
+texture_set_size_override = runMethod @"texture_set_size_override"
+
+textures_keep_original ::
+                         Method "textures_keep_original" cls sig => cls -> sig
+textures_keep_original = runMethod @"textures_keep_original"
+
+tile_add_shape :: Method "tile_add_shape" cls sig => cls -> sig
+tile_add_shape = runMethod @"tile_add_shape"
+
+tile_get_light_occluder ::
+                          Method "tile_get_light_occluder" cls sig => cls -> sig
+tile_get_light_occluder = runMethod @"tile_get_light_occluder"
+
+tile_get_material ::
+                    Method "tile_get_material" cls sig => cls -> sig
+tile_get_material = runMethod @"tile_get_material"
+
+tile_get_modulate ::
+                    Method "tile_get_modulate" cls sig => cls -> sig
+tile_get_modulate = runMethod @"tile_get_modulate"
+
+tile_get_name :: Method "tile_get_name" cls sig => cls -> sig
+tile_get_name = runMethod @"tile_get_name"
+
+tile_get_navigation_polygon ::
+                              Method "tile_get_navigation_polygon" cls sig => cls -> sig
+tile_get_navigation_polygon
+  = runMethod @"tile_get_navigation_polygon"
+
+tile_get_navigation_polygon_offset ::
+                                     Method "tile_get_navigation_polygon_offset" cls sig =>
+                                     cls -> sig
+tile_get_navigation_polygon_offset
+  = runMethod @"tile_get_navigation_polygon_offset"
+
+tile_get_normal_map ::
+                      Method "tile_get_normal_map" cls sig => cls -> sig
+tile_get_normal_map = runMethod @"tile_get_normal_map"
+
+tile_get_occluder_offset ::
+                           Method "tile_get_occluder_offset" cls sig => cls -> sig
+tile_get_occluder_offset = runMethod @"tile_get_occluder_offset"
+
+tile_get_region :: Method "tile_get_region" cls sig => cls -> sig
+tile_get_region = runMethod @"tile_get_region"
+
+tile_get_shape :: Method "tile_get_shape" cls sig => cls -> sig
+tile_get_shape = runMethod @"tile_get_shape"
+
+tile_get_shape_count ::
+                       Method "tile_get_shape_count" cls sig => cls -> sig
+tile_get_shape_count = runMethod @"tile_get_shape_count"
+
+tile_get_shape_offset ::
+                        Method "tile_get_shape_offset" cls sig => cls -> sig
+tile_get_shape_offset = runMethod @"tile_get_shape_offset"
+
+tile_get_shape_one_way ::
+                         Method "tile_get_shape_one_way" cls sig => cls -> sig
+tile_get_shape_one_way = runMethod @"tile_get_shape_one_way"
+
+tile_get_shape_transform ::
+                           Method "tile_get_shape_transform" cls sig => cls -> sig
+tile_get_shape_transform = runMethod @"tile_get_shape_transform"
+
+tile_get_shapes :: Method "tile_get_shapes" cls sig => cls -> sig
+tile_get_shapes = runMethod @"tile_get_shapes"
+
+tile_get_texture :: Method "tile_get_texture" cls sig => cls -> sig
+tile_get_texture = runMethod @"tile_get_texture"
+
+tile_get_texture_offset ::
+                          Method "tile_get_texture_offset" cls sig => cls -> sig
+tile_get_texture_offset = runMethod @"tile_get_texture_offset"
+
+tile_get_tile_mode ::
+                     Method "tile_get_tile_mode" cls sig => cls -> sig
+tile_get_tile_mode = runMethod @"tile_get_tile_mode"
+
+tile_get_z_index :: Method "tile_get_z_index" cls sig => cls -> sig
+tile_get_z_index = runMethod @"tile_get_z_index"
+
+tile_set_light_occluder ::
+                          Method "tile_set_light_occluder" cls sig => cls -> sig
+tile_set_light_occluder = runMethod @"tile_set_light_occluder"
+
+tile_set_material ::
+                    Method "tile_set_material" cls sig => cls -> sig
+tile_set_material = runMethod @"tile_set_material"
+
+tile_set_modulate ::
+                    Method "tile_set_modulate" cls sig => cls -> sig
+tile_set_modulate = runMethod @"tile_set_modulate"
+
+tile_set_name :: Method "tile_set_name" cls sig => cls -> sig
+tile_set_name = runMethod @"tile_set_name"
+
+tile_set_navigation_polygon ::
+                              Method "tile_set_navigation_polygon" cls sig => cls -> sig
+tile_set_navigation_polygon
+  = runMethod @"tile_set_navigation_polygon"
+
+tile_set_navigation_polygon_offset ::
+                                     Method "tile_set_navigation_polygon_offset" cls sig =>
+                                     cls -> sig
+tile_set_navigation_polygon_offset
+  = runMethod @"tile_set_navigation_polygon_offset"
+
+tile_set_normal_map ::
+                      Method "tile_set_normal_map" cls sig => cls -> sig
+tile_set_normal_map = runMethod @"tile_set_normal_map"
+
+tile_set_occluder_offset ::
+                           Method "tile_set_occluder_offset" cls sig => cls -> sig
+tile_set_occluder_offset = runMethod @"tile_set_occluder_offset"
+
+tile_set_region :: Method "tile_set_region" cls sig => cls -> sig
+tile_set_region = runMethod @"tile_set_region"
+
+tile_set_shape :: Method "tile_set_shape" cls sig => cls -> sig
+tile_set_shape = runMethod @"tile_set_shape"
+
+tile_set_shape_offset ::
+                        Method "tile_set_shape_offset" cls sig => cls -> sig
+tile_set_shape_offset = runMethod @"tile_set_shape_offset"
+
+tile_set_shape_one_way ::
+                         Method "tile_set_shape_one_way" cls sig => cls -> sig
+tile_set_shape_one_way = runMethod @"tile_set_shape_one_way"
+
+tile_set_shape_transform ::
+                           Method "tile_set_shape_transform" cls sig => cls -> sig
+tile_set_shape_transform = runMethod @"tile_set_shape_transform"
+
+tile_set_shapes :: Method "tile_set_shapes" cls sig => cls -> sig
+tile_set_shapes = runMethod @"tile_set_shapes"
+
+tile_set_texture :: Method "tile_set_texture" cls sig => cls -> sig
+tile_set_texture = runMethod @"tile_set_texture"
+
+tile_set_texture_offset ::
+                          Method "tile_set_texture_offset" cls sig => cls -> sig
+tile_set_texture_offset = runMethod @"tile_set_texture_offset"
+
+tile_set_tile_mode ::
+                     Method "tile_set_tile_mode" cls sig => cls -> sig
+tile_set_tile_mode = runMethod @"tile_set_tile_mode"
+
+tile_set_z_index :: Method "tile_set_z_index" cls sig => cls -> sig
+tile_set_z_index = runMethod @"tile_set_z_index"
+
+timescale_node_get_scale ::
+                           Method "timescale_node_get_scale" cls sig => cls -> sig
+timescale_node_get_scale = runMethod @"timescale_node_get_scale"
+
+timescale_node_set_scale ::
+                           Method "timescale_node_set_scale" cls sig => cls -> sig
+timescale_node_set_scale = runMethod @"timescale_node_set_scale"
+
+timeseek_node_seek ::
+                     Method "timeseek_node_seek" cls sig => cls -> sig
+timeseek_node_seek = runMethod @"timeseek_node_seek"
+
+to_global :: Method "to_global" cls sig => cls -> sig
+to_global = runMethod @"to_global"
+
+to_local :: Method "to_local" cls sig => cls -> sig
+to_local = runMethod @"to_local"
+
+toggle_fold_line :: Method "toggle_fold_line" cls sig => cls -> sig
+toggle_fold_line = runMethod @"toggle_fold_line"
+
+toggle_item_checked ::
+                      Method "toggle_item_checked" cls sig => cls -> sig
+toggle_item_checked = runMethod @"toggle_item_checked"
+
+toggle_item_multistate ::
+                         Method "toggle_item_multistate" cls sig => cls -> sig
+toggle_item_multistate = runMethod @"toggle_item_multistate"
+
+tr :: Method "tr" cls sig => cls -> sig
+tr = runMethod @"tr"
+
+track_find_key :: Method "track_find_key" cls sig => cls -> sig
+track_find_key = runMethod @"track_find_key"
+
+track_get_interpolation_loop_wrap ::
+                                    Method "track_get_interpolation_loop_wrap" cls sig => cls -> sig
+track_get_interpolation_loop_wrap
+  = runMethod @"track_get_interpolation_loop_wrap"
+
+track_get_interpolation_type ::
+                               Method "track_get_interpolation_type" cls sig => cls -> sig
+track_get_interpolation_type
+  = runMethod @"track_get_interpolation_type"
+
+track_get_key_count ::
+                      Method "track_get_key_count" cls sig => cls -> sig
+track_get_key_count = runMethod @"track_get_key_count"
+
+track_get_key_time ::
+                     Method "track_get_key_time" cls sig => cls -> sig
+track_get_key_time = runMethod @"track_get_key_time"
+
+track_get_key_transition ::
+                           Method "track_get_key_transition" cls sig => cls -> sig
+track_get_key_transition = runMethod @"track_get_key_transition"
+
+track_get_key_value ::
+                      Method "track_get_key_value" cls sig => cls -> sig
+track_get_key_value = runMethod @"track_get_key_value"
+
+track_get_path :: Method "track_get_path" cls sig => cls -> sig
+track_get_path = runMethod @"track_get_path"
+
+track_get_type :: Method "track_get_type" cls sig => cls -> sig
+track_get_type = runMethod @"track_get_type"
+
+track_insert_key :: Method "track_insert_key" cls sig => cls -> sig
+track_insert_key = runMethod @"track_insert_key"
+
+track_is_enabled :: Method "track_is_enabled" cls sig => cls -> sig
+track_is_enabled = runMethod @"track_is_enabled"
+
+track_is_imported ::
+                    Method "track_is_imported" cls sig => cls -> sig
+track_is_imported = runMethod @"track_is_imported"
+
+track_move_down :: Method "track_move_down" cls sig => cls -> sig
+track_move_down = runMethod @"track_move_down"
+
+track_move_up :: Method "track_move_up" cls sig => cls -> sig
+track_move_up = runMethod @"track_move_up"
+
+track_remove_key :: Method "track_remove_key" cls sig => cls -> sig
+track_remove_key = runMethod @"track_remove_key"
+
+track_remove_key_at_position ::
+                               Method "track_remove_key_at_position" cls sig => cls -> sig
+track_remove_key_at_position
+  = runMethod @"track_remove_key_at_position"
+
+track_set_enabled ::
+                    Method "track_set_enabled" cls sig => cls -> sig
+track_set_enabled = runMethod @"track_set_enabled"
+
+track_set_imported ::
+                     Method "track_set_imported" cls sig => cls -> sig
+track_set_imported = runMethod @"track_set_imported"
+
+track_set_interpolation_loop_wrap ::
+                                    Method "track_set_interpolation_loop_wrap" cls sig => cls -> sig
+track_set_interpolation_loop_wrap
+  = runMethod @"track_set_interpolation_loop_wrap"
+
+track_set_interpolation_type ::
+                               Method "track_set_interpolation_type" cls sig => cls -> sig
+track_set_interpolation_type
+  = runMethod @"track_set_interpolation_type"
+
+track_set_key_transition ::
+                           Method "track_set_key_transition" cls sig => cls -> sig
+track_set_key_transition = runMethod @"track_set_key_transition"
+
+track_set_key_value ::
+                      Method "track_set_key_value" cls sig => cls -> sig
+track_set_key_value = runMethod @"track_set_key_value"
+
+track_set_path :: Method "track_set_path" cls sig => cls -> sig
+track_set_path = runMethod @"track_set_path"
+
+track_swap :: Method "track_swap" cls sig => cls -> sig
+track_swap = runMethod @"track_swap"
+
+transform_track_insert_key ::
+                             Method "transform_track_insert_key" cls sig => cls -> sig
+transform_track_insert_key
+  = runMethod @"transform_track_insert_key"
+
+transform_track_interpolate ::
+                              Method "transform_track_interpolate" cls sig => cls -> sig
+transform_track_interpolate
+  = runMethod @"transform_track_interpolate"
+
+transition_node_delete_input ::
+                               Method "transition_node_delete_input" cls sig => cls -> sig
+transition_node_delete_input
+  = runMethod @"transition_node_delete_input"
+
+transition_node_get_current ::
+                              Method "transition_node_get_current" cls sig => cls -> sig
+transition_node_get_current
+  = runMethod @"transition_node_get_current"
+
+transition_node_get_input_count ::
+                                  Method "transition_node_get_input_count" cls sig => cls -> sig
+transition_node_get_input_count
+  = runMethod @"transition_node_get_input_count"
+
+transition_node_get_xfade_time ::
+                                 Method "transition_node_get_xfade_time" cls sig => cls -> sig
+transition_node_get_xfade_time
+  = runMethod @"transition_node_get_xfade_time"
+
+transition_node_has_input_auto_advance ::
+                                         Method "transition_node_has_input_auto_advance" cls sig =>
+                                         cls -> sig
+transition_node_has_input_auto_advance
+  = runMethod @"transition_node_has_input_auto_advance"
+
+transition_node_set_current ::
+                              Method "transition_node_set_current" cls sig => cls -> sig
+transition_node_set_current
+  = runMethod @"transition_node_set_current"
+
+transition_node_set_input_auto_advance ::
+                                         Method "transition_node_set_input_auto_advance" cls sig =>
+                                         cls -> sig
+transition_node_set_input_auto_advance
+  = runMethod @"transition_node_set_input_auto_advance"
+
+transition_node_set_input_count ::
+                                  Method "transition_node_set_input_count" cls sig => cls -> sig
+transition_node_set_input_count
+  = runMethod @"transition_node_set_input_count"
+
+transition_node_set_xfade_time ::
+                                 Method "transition_node_set_xfade_time" cls sig => cls -> sig
+transition_node_set_xfade_time
+  = runMethod @"transition_node_set_xfade_time"
+
+translate :: Method "translate" cls sig => cls -> sig
+translate = runMethod @"translate"
+
+translate_object_local ::
+                         Method "translate_object_local" cls sig => cls -> sig
+translate_object_local = runMethod @"translate_object_local"
+
+travel :: Method "travel" cls sig => cls -> sig
+travel = runMethod @"travel"
+
+triangulate_polygon ::
+                      Method "triangulate_polygon" cls sig => cls -> sig
+triangulate_polygon = runMethod @"triangulate_polygon"
+
+try_lock :: Method "try_lock" cls sig => cls -> sig
+try_lock = runMethod @"try_lock"
+
+unbind_child_node_from_bone ::
+                              Method "unbind_child_node_from_bone" cls sig => cls -> sig
+unbind_child_node_from_bone
+  = runMethod @"unbind_child_node_from_bone"
+
+undo :: Method "undo" cls sig => cls -> sig
+undo = runMethod @"undo"
+
+unfold_line :: Method "unfold_line" cls sig => cls -> sig
+unfold_line = runMethod @"unfold_line"
+
+unhandled_input :: Method "unhandled_input" cls sig => cls -> sig
+unhandled_input = runMethod @"unhandled_input"
+
+unhide_all_lines :: Method "unhide_all_lines" cls sig => cls -> sig
+unhide_all_lines = runMethod @"unhide_all_lines"
+
+uninitialize :: Method "uninitialize" cls sig => cls -> sig
+uninitialize = runMethod @"uninitialize"
+
+unlock :: Method "unlock" cls sig => cls -> sig
+unlock = runMethod @"unlock"
+
+unparent_bone_and_rest ::
+                         Method "unparent_bone_and_rest" cls sig => cls -> sig
+unparent_bone_and_rest = runMethod @"unparent_bone_and_rest"
+
+unproject_position ::
+                     Method "unproject_position" cls sig => cls -> sig
+unproject_position = runMethod @"unproject_position"
+
+unreference :: Method "unreference" cls sig => cls -> sig
+unreference = runMethod @"unreference"
+
+unselect :: Method "unselect" cls sig => cls -> sig
+unselect = runMethod @"unselect"
+
+unselect_all :: Method "unselect_all" cls sig => cls -> sig
+unselect_all = runMethod @"unselect_all"
+
+unshare :: Method "unshare" cls sig => cls -> sig
+unshare = runMethod @"unshare"
+
+update :: Method "update" cls sig => cls -> sig
+update = runMethod @"update"
+
+update_bitmask_area ::
+                      Method "update_bitmask_area" cls sig => cls -> sig
+update_bitmask_area = runMethod @"update_bitmask_area"
+
+update_bitmask_region ::
+                        Method "update_bitmask_region" cls sig => cls -> sig
+update_bitmask_region = runMethod @"update_bitmask_region"
+
+update_changes :: Method "update_changes" cls sig => cls -> sig
+update_changes = runMethod @"update_changes"
+
+update_dirty_quadrants ::
+                         Method "update_dirty_quadrants" cls sig => cls -> sig
+update_dirty_quadrants = runMethod @"update_dirty_quadrants"
+
+update_file :: Method "update_file" cls sig => cls -> sig
+update_file = runMethod @"update_file"
+
+update_gizmo :: Method "update_gizmo" cls sig => cls -> sig
+update_gizmo = runMethod @"update_gizmo"
+
+update_overlays :: Method "update_overlays" cls sig => cls -> sig
+update_overlays = runMethod @"update_overlays"
+
+update_position :: Method "update_position" cls sig => cls -> sig
+update_position = runMethod @"update_position"
+
+update_property :: Method "update_property" cls sig => cls -> sig
+update_property = runMethod @"update_property"
+
+update_script_classes ::
+                        Method "update_script_classes" cls sig => cls -> sig
+update_script_classes = runMethod @"update_script_classes"
+
+update_worlds :: Method "update_worlds" cls sig => cls -> sig
+update_worlds = runMethod @"update_worlds"
+
+use_arvr :: Method "use_arvr" cls sig => cls -> sig
+use_arvr = runMethod @"use_arvr"
+
+utf8_to_base64 :: Method "utf8_to_base64" cls sig => cls -> sig
+utf8_to_base64 = runMethod @"utf8_to_base64"
+
+value_track_get_key_indices ::
+                              Method "value_track_get_key_indices" cls sig => cls -> sig
+value_track_get_key_indices
+  = runMethod @"value_track_get_key_indices"
+
+value_track_get_update_mode ::
+                              Method "value_track_get_update_mode" cls sig => cls -> sig
+value_track_get_update_mode
+  = runMethod @"value_track_get_update_mode"
+
+value_track_set_update_mode ::
+                              Method "value_track_set_update_mode" cls sig => cls -> sig
+value_track_set_update_mode
+  = runMethod @"value_track_set_update_mode"
+
+variant_to_base64 ::
+                    Method "variant_to_base64" cls sig => cls -> sig
+variant_to_base64 = runMethod @"variant_to_base64"
+
+viewport_attach_camera ::
+                         Method "viewport_attach_camera" cls sig => cls -> sig
+viewport_attach_camera = runMethod @"viewport_attach_camera"
+
+viewport_attach_canvas ::
+                         Method "viewport_attach_canvas" cls sig => cls -> sig
+viewport_attach_canvas = runMethod @"viewport_attach_canvas"
+
+viewport_attach_to_screen ::
+                            Method "viewport_attach_to_screen" cls sig => cls -> sig
+viewport_attach_to_screen = runMethod @"viewport_attach_to_screen"
+
+viewport_create :: Method "viewport_create" cls sig => cls -> sig
+viewport_create = runMethod @"viewport_create"
+
+viewport_detach :: Method "viewport_detach" cls sig => cls -> sig
+viewport_detach = runMethod @"viewport_detach"
+
+viewport_get_render_info ::
+                           Method "viewport_get_render_info" cls sig => cls -> sig
+viewport_get_render_info = runMethod @"viewport_get_render_info"
+
+viewport_get_texture ::
+                       Method "viewport_get_texture" cls sig => cls -> sig
+viewport_get_texture = runMethod @"viewport_get_texture"
+
+viewport_remove_canvas ::
+                         Method "viewport_remove_canvas" cls sig => cls -> sig
+viewport_remove_canvas = runMethod @"viewport_remove_canvas"
+
+viewport_set_active ::
+                      Method "viewport_set_active" cls sig => cls -> sig
+viewport_set_active = runMethod @"viewport_set_active"
+
+viewport_set_canvas_stacking ::
+                               Method "viewport_set_canvas_stacking" cls sig => cls -> sig
+viewport_set_canvas_stacking
+  = runMethod @"viewport_set_canvas_stacking"
+
+viewport_set_canvas_transform ::
+                                Method "viewport_set_canvas_transform" cls sig => cls -> sig
+viewport_set_canvas_transform
+  = runMethod @"viewport_set_canvas_transform"
+
+viewport_set_clear_mode ::
+                          Method "viewport_set_clear_mode" cls sig => cls -> sig
+viewport_set_clear_mode = runMethod @"viewport_set_clear_mode"
+
+viewport_set_debug_draw ::
+                          Method "viewport_set_debug_draw" cls sig => cls -> sig
+viewport_set_debug_draw = runMethod @"viewport_set_debug_draw"
+
+viewport_set_disable_3d ::
+                          Method "viewport_set_disable_3d" cls sig => cls -> sig
+viewport_set_disable_3d = runMethod @"viewport_set_disable_3d"
+
+viewport_set_disable_environment ::
+                                   Method "viewport_set_disable_environment" cls sig => cls -> sig
+viewport_set_disable_environment
+  = runMethod @"viewport_set_disable_environment"
+
+viewport_set_global_canvas_transform ::
+                                       Method "viewport_set_global_canvas_transform" cls sig =>
+                                       cls -> sig
+viewport_set_global_canvas_transform
+  = runMethod @"viewport_set_global_canvas_transform"
+
+viewport_set_hdr :: Method "viewport_set_hdr" cls sig => cls -> sig
+viewport_set_hdr = runMethod @"viewport_set_hdr"
+
+viewport_set_hide_canvas ::
+                           Method "viewport_set_hide_canvas" cls sig => cls -> sig
+viewport_set_hide_canvas = runMethod @"viewport_set_hide_canvas"
+
+viewport_set_hide_scenario ::
+                             Method "viewport_set_hide_scenario" cls sig => cls -> sig
+viewport_set_hide_scenario
+  = runMethod @"viewport_set_hide_scenario"
+
+viewport_set_msaa ::
+                    Method "viewport_set_msaa" cls sig => cls -> sig
+viewport_set_msaa = runMethod @"viewport_set_msaa"
+
+viewport_set_parent_viewport ::
+                               Method "viewport_set_parent_viewport" cls sig => cls -> sig
+viewport_set_parent_viewport
+  = runMethod @"viewport_set_parent_viewport"
+
+viewport_set_scenario ::
+                        Method "viewport_set_scenario" cls sig => cls -> sig
+viewport_set_scenario = runMethod @"viewport_set_scenario"
+
+viewport_set_shadow_atlas_quadrant_subdivision ::
+                                                 Method
+                                                   "viewport_set_shadow_atlas_quadrant_subdivision"
+                                                   cls sig =>
+                                                 cls -> sig
+viewport_set_shadow_atlas_quadrant_subdivision
+  = runMethod @"viewport_set_shadow_atlas_quadrant_subdivision"
+
+viewport_set_shadow_atlas_size ::
+                                 Method "viewport_set_shadow_atlas_size" cls sig => cls -> sig
+viewport_set_shadow_atlas_size
+  = runMethod @"viewport_set_shadow_atlas_size"
+
+viewport_set_size ::
+                    Method "viewport_set_size" cls sig => cls -> sig
+viewport_set_size = runMethod @"viewport_set_size"
+
+viewport_set_transparent_background ::
+                                      Method "viewport_set_transparent_background" cls sig =>
+                                      cls -> sig
+viewport_set_transparent_background
+  = runMethod @"viewport_set_transparent_background"
+
+viewport_set_update_mode ::
+                           Method "viewport_set_update_mode" cls sig => cls -> sig
+viewport_set_update_mode = runMethod @"viewport_set_update_mode"
+
+viewport_set_usage ::
+                     Method "viewport_set_usage" cls sig => cls -> sig
+viewport_set_usage = runMethod @"viewport_set_usage"
+
+viewport_set_use_arvr ::
+                        Method "viewport_set_use_arvr" cls sig => cls -> sig
+viewport_set_use_arvr = runMethod @"viewport_set_use_arvr"
+
+viewport_set_vflip ::
+                     Method "viewport_set_vflip" cls sig => cls -> sig
+viewport_set_vflip = runMethod @"viewport_set_vflip"
+
+wait :: Method "wait" cls sig => cls -> sig
+wait = runMethod @"wait"
+
+wait_to_finish :: Method "wait_to_finish" cls sig => cls -> sig
+wait_to_finish = runMethod @"wait_to_finish"
+
+warp_mouse :: Method "warp_mouse" cls sig => cls -> sig
+warp_mouse = runMethod @"warp_mouse"
+
+warp_mouse_position ::
+                      Method "warp_mouse_position" cls sig => cls -> sig
+warp_mouse_position = runMethod @"warp_mouse_position"
+
+was_string_packet ::
+                    Method "was_string_packet" cls sig => cls -> sig
+was_string_packet = runMethod @"was_string_packet"
+
+world_to_map :: Method "world_to_map" cls sig => cls -> sig
+world_to_map = runMethod @"world_to_map"
+
+xformed_by :: Method "xformed_by" cls sig => cls -> sig
+xformed_by = runMethod @"xformed_by"
diff --git a/src/Godot/Nativescript.hs b/src/Godot/Nativescript.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Nativescript.hs
@@ -0,0 +1,207 @@
+{-# LANGUAGE RecursiveDo, RecordWildCards, AllowAmbiguousTypes #-}
+module Godot.Nativescript where
+
+import Control.Monad
+
+import Data.Typeable
+import Data.Text (Text)
+import Data.Vector (Vector)
+import qualified Data.Vector as V
+
+import qualified Data.Set as S
+import Control.Concurrent.STM.TVar
+import Control.Monad.STM
+
+import Foreign hiding (void)
+import Foreign.C
+
+import System.IO.Unsafe
+
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+
+type GdnativeHandle = Ptr ()
+
+-- | Typeclass for types that are bound to godot
+class GodotClass a where
+  godotClassName :: String
+
+registerClass :: forall a. (GodotClass a, Typeable a)
+              => GdnativeHandle
+              -> String -- ^ base class
+              -> (GodotObject -> IO a) -- ^ create action
+              -> (GodotObject -> a -> IO ()) -- ^ destroy action
+              -> IO ()
+registerClass pHandle base create destroy = do
+  createFun <- mkInstanceCreateFunPtr $
+    \ins _ -> create ins >>= newStablePtr >>= (return . castStablePtrToPtr)
+  destroyFun <- mkInstanceDestroyFunPtr $
+    \ins _ objPtr -> do
+      let stPtr = castPtrToStablePtr objPtr
+      obj <- deRefStablePtr stPtr
+      freeStablePtr stPtr
+      destroy ins obj
+  rec 
+    createFreeFun <- mkInstanceFreeFunPtr $
+      \_ -> freeHaskellFunPtr createFun >> freeHaskellFunPtr createFreeFun
+    destroyFreeFun <- mkInstanceFreeFunPtr $
+      \_ -> freeHaskellFunPtr destroyFun >> freeHaskellFunPtr destroyFreeFun
+      
+  let createFunObj = GodotInstanceCreateFunc createFun nullPtr createFreeFun
+  let destroyFunObj = GodotInstanceDestroyFunc destroyFun nullPtr destroyFreeFun
+
+  let tyr = typeRep (Proxy :: Proxy a)
+  tyPtr <- newStablePtr tyr
+
+  atomically $ modifyTVar' typeTags (S.insert $ castStablePtrToPtr tyPtr) 
+
+  let name = godotClassName @a
+  withCString name $ \namePtr -> withCString base $ \basePtr -> do
+    godot_nativescript_register_class pHandle namePtr basePtr createFunObj destroyFunObj
+    godot_nativescript_set_type_tag pHandle namePtr (castStablePtrToPtr tyPtr)
+  
+
+typeTags :: TVar (S.Set (Ptr ()))
+typeTags = unsafePerformIO $ newTVarIO mempty
+{-# NOINLINE typeTags #-}
+
+tryObjectCast :: forall a. (GodotClass a, Typeable a) => GodotObject -> IO (Maybe a)
+tryObjectCast obj = do
+  tyPtr <- godot_nativescript_get_type_tag obj
+  ttags <- atomically $ readTVar typeTags
+  if tyPtr == nullPtr || tyPtr `S.notMember` ttags then return Nothing else do
+
+    let tySPtr = castPtrToStablePtr tyPtr
+    tyrep <- deRefStablePtr tySPtr
+
+    if tyrep == typeRep (Proxy :: Proxy a) then
+      Just <$> (godot_nativescript_get_userdata obj >>= (deRefStablePtr.castPtrToStablePtr))
+    else
+      return Nothing
+
+
+copyVariant :: Ptr GodotVariant -- ^ destination
+            -> Ptr GodotVariant -- ^ source
+            -> IO ()
+copyVariant dest src = copyBytes dest src (opaqueSizeOf @GodotVariant)            
+            
+  
+registerMethod :: forall a. GodotClass a
+               => GdnativeHandle
+               -> String -- ^ method name
+               -> GodotMethodRpcMode
+               -> (GodotObject -> a -> Vector GodotVariant -> IO GodotVariant)
+               -> IO ()
+registerMethod pHandle mtdName rpc method  = do
+  methodFun <- mkInstanceMethodFunPtr $ \outPtr ins _ objPtr numArgs argsPtr -> do
+    obj <- deRefStablePtr $ castPtrToStablePtr objPtr
+    ptrs <- V.fromList <$> peekArray (fromIntegral numArgs) argsPtr
+    args <- V.forM ptrs $
+      \ptr -> do
+        oldVar <- GodotVariant <$> newForeignPtr_ ptr
+        godot_variant_new_copy oldVar
+    res <- method ins obj args
+    withGodotVariant res $ copyVariant outPtr
+    return outPtr
+    
+  rec
+    methodFreeFun <- mkInstanceFreeFunPtr $
+      \_ -> freeHaskellFunPtr methodFun >> freeHaskellFunPtr methodFreeFun
+
+  let methodObj = GodotInstanceMethod methodFun nullPtr methodFreeFun
+
+  let clsName = godotClassName @a
+  withCString clsName $ \clsNamePtr -> withCString mtdName $
+    \mtdNamePtr -> godot_nativescript_register_method pHandle clsNamePtr mtdNamePtr (GodotMethodAttributes rpc) methodObj
+
+data PropertyAttributes = PropertyAttributes
+  { propertySetType :: !GodotMethodRpcMode
+  , propertyType :: !GodotVariantType
+  , propertyHint :: !GodotPropertyHint
+  , propertyHintString :: !Text
+  , propertyUsage :: !GodotPropertyUsageFlags
+  , propertyDefaultValue :: !(Variant 'GodotTy)
+  }
+
+asGodotPropertyAttributes :: PropertyAttributes -> IO GodotPropertyAttributes
+asGodotPropertyAttributes PropertyAttributes {..} = do
+  hintStr <- toLowLevel propertyHintString
+  def <- toLowLevel propertyDefaultValue
+  let ty = fromIntegral $ fromEnum propertyType
+  return $ GodotPropertyAttributes propertySetType ty propertyHint hintStr propertyUsage def
+
+registerProperty :: forall a. GodotClass a
+                 => GdnativeHandle
+                 -> String -- ^ property path
+                 -> PropertyAttributes
+                 -> (GodotObject -> a -> GodotVariant -> IO ()) -- ^ set func. godot variants destroyed at end of call
+                 -> (GodotObject -> a -> IO GodotVariant) -- ^ get func
+                 -> IO ()
+registerProperty pHandle path attr setter getter = do
+  setFun <- mkPropertySetFunPtr $ \ins _ objPtr valPtr -> do
+    obj <- deRefStablePtr $ castPtrToStablePtr objPtr
+    val <- newForeignPtr_ valPtr
+    setter ins obj (GodotVariant val)
+  getFun <- mkPropertyGetFunPtr $ \outPtr ins _ objPtr -> do
+    obj <- deRefStablePtr $ castPtrToStablePtr objPtr
+    res <- getter ins obj
+    withGodotVariant res $ copyVariant outPtr
+    return outPtr
+  rec
+    setFreeFun <- mkInstanceFreeFunPtr $ \_ ->
+      freeHaskellFunPtr setFun >> freeHaskellFunPtr setFreeFun
+    getFreeFun <- mkInstanceFreeFunPtr $ \_ ->
+      freeHaskellFunPtr getFun >> freeHaskellFunPtr getFreeFun
+
+  let clsName = godotClassName @a
+
+  godotAttr <- asGodotPropertyAttributes attr
+  withCString clsName $ \clsNamePtr -> withCString path $ \pathPtr ->
+    godot_nativescript_register_property pHandle clsNamePtr pathPtr godotAttr
+      (GodotPropertySetFunc setFun nullPtr setFreeFun)
+      (GodotPropertyGetFunc getFun nullPtr getFreeFun)
+
+data SignalArgument = SignalArgument
+  { signalArgumentName :: !Text
+  , signalArgumentType :: !GodotVariantType
+  , signalArgumentHint :: !GodotPropertyHint
+  , signalArgumentHintString :: !Text
+  , signalArgumentUsage :: !GodotPropertyUsageFlags
+  , signalArgumentDefaultValue :: !(Variant 'GodotTy)
+  }
+
+asGodotSignalArgument :: SignalArgument -> IO GodotSignalArgument
+asGodotSignalArgument SignalArgument{..} = do
+  name <- toLowLevel signalArgumentName
+  let ty = fromIntegral $ fromEnum signalArgumentType
+  hintStr <- toLowLevel signalArgumentHintString
+  def <- toLowLevel signalArgumentDefaultValue
+  return $ GodotSignalArgument name ty signalArgumentHint hintStr signalArgumentUsage def
+  
+
+withVariantArray' :: [Variant 'GodotTy] -> ((Ptr GodotVariant, CInt) -> IO a) -> IO a
+withVariantArray' vars mtd =  allocaBytes (opaqueSizeOf @GodotVariant * length vars) $
+  \arrPtr ->  withVars vars 0 arrPtr mtd
+  where
+    withVars (x:xs) n arrPtr mtd = do
+      vt <- toLowLevel x
+      withGodotVariant vt $ \vtPtr -> do
+        copyVariant (arrPtr `plusPtr` (n * opaqueSizeOf @GodotVariant)) vtPtr 
+        withVars xs (n+1) arrPtr mtd
+    withVars [] n arrPtr mtd = mtd (arrPtr, fromIntegral n)
+
+registerSignal :: forall a. GodotClass a
+               => GdnativeHandle
+               -> Proxy a
+               -> Text -- ^ signal name
+               -> [SignalArgument] -- ^ args
+               -> [Variant 'GodotTy] -- ^ default args
+               -> IO ()
+registerSignal pHandle _ sigName args defaultArgs = do
+  gdArgs <- mapM asGodotSignalArgument args
+  let clsName = godotClassName @a
+  
+  withArrayLen gdArgs $ \gdArgsLen gdArgsPtr -> withVariantArray' defaultArgs $ \(defArgsPtr, defArgsLen) ->
+    withCString clsName $ \clsNamePtr -> do
+    gdSigName <- toLowLevel sigName
+    godot_nativescript_register_signal pHandle clsNamePtr (GodotSignal gdSigName (fromIntegral gdArgsLen) gdArgsPtr (fromIntegral defArgsLen) defArgsPtr)
diff --git a/src/Godot/Tools/GodotAnimationTrackEditPlugin.hs b/src/Godot/Tools/GodotAnimationTrackEditPlugin.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotAnimationTrackEditPlugin.hs
@@ -0,0 +1,8 @@
+module Godot.Tools.GodotAnimationTrackEditPlugin where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Tools/GodotEditorExportPlugin.hs b/src/Godot/Tools/GodotEditorExportPlugin.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorExportPlugin.hs
@@ -0,0 +1,8 @@
+module Godot.Tools.GodotEditorExportPlugin where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Tools/GodotEditorFileDialog.hs b/src/Godot/Tools/GodotEditorFileDialog.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorFileDialog.hs
@@ -0,0 +1,57 @@
+module Godot.Tools.GodotEditorFileDialog where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern ACCESS_RESOURCES :: Int
+
+pattern ACCESS_RESOURCES = 0
+
+pattern DISPLAY_THUMBNAILS :: Int
+
+pattern DISPLAY_THUMBNAILS = 0
+
+pattern MODE_OPEN_FILES :: Int
+
+pattern MODE_OPEN_FILES = 1
+
+pattern MODE_OPEN_FILE :: Int
+
+pattern MODE_OPEN_FILE = 0
+
+pattern MODE_SAVE_FILE :: Int
+
+pattern MODE_SAVE_FILE = 4
+
+pattern DISPLAY_LIST :: Int
+
+pattern DISPLAY_LIST = 1
+
+pattern ACCESS_USERDATA :: Int
+
+pattern ACCESS_USERDATA = 1
+
+pattern ACCESS_FILESYSTEM :: Int
+
+pattern ACCESS_FILESYSTEM = 2
+
+pattern MODE_OPEN_DIR :: Int
+
+pattern MODE_OPEN_DIR = 2
+
+pattern MODE_OPEN_ANY :: Int
+
+pattern MODE_OPEN_ANY = 3
+
+files_selected :: Signal GodotEditorFileDialog
+files_selected = Signal "files_selected"
+
+dir_selected :: Signal GodotEditorFileDialog
+dir_selected = Signal "dir_selected"
+
+file_selected :: Signal GodotEditorFileDialog
+file_selected = Signal "file_selected"
diff --git a/src/Godot/Tools/GodotEditorFileSystem.hs b/src/Godot/Tools/GodotEditorFileSystem.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorFileSystem.hs
@@ -0,0 +1,17 @@
+module Godot.Tools.GodotEditorFileSystem where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+resources_reimported :: Signal GodotEditorFileSystem
+resources_reimported = Signal "resources_reimported"
+
+sources_changed :: Signal GodotEditorFileSystem
+sources_changed = Signal "sources_changed"
+
+filesystem_changed :: Signal GodotEditorFileSystem
+filesystem_changed = Signal "filesystem_changed"
diff --git a/src/Godot/Tools/GodotEditorFileSystemDirectory.hs b/src/Godot/Tools/GodotEditorFileSystemDirectory.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorFileSystemDirectory.hs
@@ -0,0 +1,8 @@
+module Godot.Tools.GodotEditorFileSystemDirectory where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Tools/GodotEditorImportPlugin.hs b/src/Godot/Tools/GodotEditorImportPlugin.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorImportPlugin.hs
@@ -0,0 +1,8 @@
+module Godot.Tools.GodotEditorImportPlugin where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Tools/GodotEditorInspector.hs b/src/Godot/Tools/GodotEditorInspector.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorInspector.hs
@@ -0,0 +1,29 @@
+module Godot.Tools.GodotEditorInspector where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+property_edited :: Signal GodotEditorInspector
+property_edited = Signal "property_edited"
+
+object_id_selected :: Signal GodotEditorInspector
+object_id_selected = Signal "object_id_selected"
+
+property_selected :: Signal GodotEditorInspector
+property_selected = Signal "property_selected"
+
+restart_requested :: Signal GodotEditorInspector
+restart_requested = Signal "restart_requested"
+
+property_keyed :: Signal GodotEditorInspector
+property_keyed = Signal "property_keyed"
+
+resource_selected :: Signal GodotEditorInspector
+resource_selected = Signal "resource_selected"
+
+property_toggled :: Signal GodotEditorInspector
+property_toggled = Signal "property_toggled"
diff --git a/src/Godot/Tools/GodotEditorInspectorPlugin.hs b/src/Godot/Tools/GodotEditorInspectorPlugin.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorInspectorPlugin.hs
@@ -0,0 +1,8 @@
+module Godot.Tools.GodotEditorInspectorPlugin where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Tools/GodotEditorInterface.hs b/src/Godot/Tools/GodotEditorInterface.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorInterface.hs
@@ -0,0 +1,8 @@
+module Godot.Tools.GodotEditorInterface where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Tools/GodotEditorPlugin.hs b/src/Godot/Tools/GodotEditorPlugin.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorPlugin.hs
@@ -0,0 +1,96 @@
+module Godot.Tools.GodotEditorPlugin where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern CONTAINER_SPATIAL_EDITOR_SIDE_LEFT :: Int
+
+pattern CONTAINER_SPATIAL_EDITOR_SIDE_LEFT = 2
+
+pattern CONTAINER_SPATIAL_EDITOR_BOTTOM :: Int
+
+pattern CONTAINER_SPATIAL_EDITOR_BOTTOM = 4
+
+pattern DOCK_SLOT_LEFT_UR :: Int
+
+pattern DOCK_SLOT_LEFT_UR = 2
+
+pattern CONTAINER_SPATIAL_EDITOR_SIDE_RIGHT :: Int
+
+pattern CONTAINER_SPATIAL_EDITOR_SIDE_RIGHT = 3
+
+pattern DOCK_SLOT_LEFT_BL :: Int
+
+pattern DOCK_SLOT_LEFT_BL = 1
+
+pattern CONTAINER_SPATIAL_EDITOR_MENU :: Int
+
+pattern CONTAINER_SPATIAL_EDITOR_MENU = 1
+
+pattern DOCK_SLOT_RIGHT_BR :: Int
+
+pattern DOCK_SLOT_RIGHT_BR = 7
+
+pattern DOCK_SLOT_RIGHT_BL :: Int
+
+pattern DOCK_SLOT_RIGHT_BL = 5
+
+pattern CONTAINER_CANVAS_EDITOR_BOTTOM :: Int
+
+pattern CONTAINER_CANVAS_EDITOR_BOTTOM = 8
+
+pattern CONTAINER_CANVAS_EDITOR_SIDE_LEFT :: Int
+
+pattern CONTAINER_CANVAS_EDITOR_SIDE_LEFT = 6
+
+pattern CONTAINER_PROPERTY_EDITOR_BOTTOM :: Int
+
+pattern CONTAINER_PROPERTY_EDITOR_BOTTOM = 9
+
+pattern CONTAINER_TOOLBAR :: Int
+
+pattern CONTAINER_TOOLBAR = 0
+
+pattern DOCK_SLOT_RIGHT_UL :: Int
+
+pattern DOCK_SLOT_RIGHT_UL = 4
+
+pattern DOCK_SLOT_RIGHT_UR :: Int
+
+pattern DOCK_SLOT_RIGHT_UR = 6
+
+pattern DOCK_SLOT_LEFT_UL :: Int
+
+pattern DOCK_SLOT_LEFT_UL = 0
+
+pattern CONTAINER_CANVAS_EDITOR_MENU :: Int
+
+pattern CONTAINER_CANVAS_EDITOR_MENU = 5
+
+pattern CONTAINER_CANVAS_EDITOR_SIDE_RIGHT :: Int
+
+pattern CONTAINER_CANVAS_EDITOR_SIDE_RIGHT = 7
+
+pattern DOCK_SLOT_LEFT_BR :: Int
+
+pattern DOCK_SLOT_LEFT_BR = 3
+
+pattern DOCK_SLOT_MAX :: Int
+
+pattern DOCK_SLOT_MAX = 8
+
+main_screen_changed :: Signal GodotEditorPlugin
+main_screen_changed = Signal "main_screen_changed"
+
+scene_closed :: Signal GodotEditorPlugin
+scene_closed = Signal "scene_closed"
+
+scene_changed :: Signal GodotEditorPlugin
+scene_changed = Signal "scene_changed"
+
+resource_saved :: Signal GodotEditorPlugin
+resource_saved = Signal "resource_saved"
diff --git a/src/Godot/Tools/GodotEditorProperty.hs b/src/Godot/Tools/GodotEditorProperty.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorProperty.hs
@@ -0,0 +1,32 @@
+module Godot.Tools.GodotEditorProperty where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+object_id_selected :: Signal GodotEditorProperty
+object_id_selected = Signal "object_id_selected"
+
+property_checked :: Signal GodotEditorProperty
+property_checked = Signal "property_checked"
+
+property_keyed_with_value :: Signal GodotEditorProperty
+property_keyed_with_value = Signal "property_keyed_with_value"
+
+property_keyed :: Signal GodotEditorProperty
+property_keyed = Signal "property_keyed"
+
+property_changed :: Signal GodotEditorProperty
+property_changed = Signal "property_changed"
+
+resource_selected :: Signal GodotEditorProperty
+resource_selected = Signal "resource_selected"
+
+selected :: Signal GodotEditorProperty
+selected = Signal "selected"
+
+multiple_properties_changed :: Signal GodotEditorProperty
+multiple_properties_changed = Signal "multiple_properties_changed"
diff --git a/src/Godot/Tools/GodotEditorResourceConversionPlugin.hs b/src/Godot/Tools/GodotEditorResourceConversionPlugin.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorResourceConversionPlugin.hs
@@ -0,0 +1,8 @@
+module Godot.Tools.GodotEditorResourceConversionPlugin where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Tools/GodotEditorResourcePreview.hs b/src/Godot/Tools/GodotEditorResourcePreview.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorResourcePreview.hs
@@ -0,0 +1,11 @@
+module Godot.Tools.GodotEditorResourcePreview where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+preview_invalidated :: Signal GodotEditorResourcePreview
+preview_invalidated = Signal "preview_invalidated"
diff --git a/src/Godot/Tools/GodotEditorResourcePreviewGenerator.hs b/src/Godot/Tools/GodotEditorResourcePreviewGenerator.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorResourcePreviewGenerator.hs
@@ -0,0 +1,8 @@
+module Godot.Tools.GodotEditorResourcePreviewGenerator where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Tools/GodotEditorSceneImporter.hs b/src/Godot/Tools/GodotEditorSceneImporter.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorSceneImporter.hs
@@ -0,0 +1,48 @@
+module Godot.Tools.GodotEditorSceneImporter where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+pattern IMPORT_MATERIALS_IN_INSTANCES :: Int
+
+pattern IMPORT_MATERIALS_IN_INSTANCES = 1024
+
+pattern IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS :: Int
+
+pattern IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS = 16
+
+pattern IMPORT_USE_COMPRESSION :: Int
+
+pattern IMPORT_USE_COMPRESSION = 2048
+
+pattern IMPORT_FAIL_ON_MISSING_DEPENDENCIES :: Int
+
+pattern IMPORT_FAIL_ON_MISSING_DEPENDENCIES = 512
+
+pattern IMPORT_ANIMATION :: Int
+
+pattern IMPORT_ANIMATION = 2
+
+pattern IMPORT_SCENE :: Int
+
+pattern IMPORT_SCENE = 1
+
+pattern IMPORT_ANIMATION_KEEP_VALUE_TRACKS :: Int
+
+pattern IMPORT_ANIMATION_KEEP_VALUE_TRACKS = 32
+
+pattern IMPORT_ANIMATION_DETECT_LOOP :: Int
+
+pattern IMPORT_ANIMATION_DETECT_LOOP = 4
+
+pattern IMPORT_ANIMATION_OPTIMIZE :: Int
+
+pattern IMPORT_ANIMATION_OPTIMIZE = 8
+
+pattern IMPORT_GENERATE_TANGENT_ARRAYS :: Int
+
+pattern IMPORT_GENERATE_TANGENT_ARRAYS = 256
diff --git a/src/Godot/Tools/GodotEditorScenePostImport.hs b/src/Godot/Tools/GodotEditorScenePostImport.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorScenePostImport.hs
@@ -0,0 +1,8 @@
+module Godot.Tools.GodotEditorScenePostImport where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Tools/GodotEditorScript.hs b/src/Godot/Tools/GodotEditorScript.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorScript.hs
@@ -0,0 +1,8 @@
+module Godot.Tools.GodotEditorScript where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Tools/GodotEditorSelection.hs b/src/Godot/Tools/GodotEditorSelection.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorSelection.hs
@@ -0,0 +1,11 @@
+module Godot.Tools.GodotEditorSelection where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+selection_changed :: Signal GodotEditorSelection
+selection_changed = Signal "selection_changed"
diff --git a/src/Godot/Tools/GodotEditorSettings.hs b/src/Godot/Tools/GodotEditorSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorSettings.hs
@@ -0,0 +1,11 @@
+module Godot.Tools.GodotEditorSettings where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+settings_changed :: Signal GodotEditorSettings
+settings_changed = Signal "settings_changed"
diff --git a/src/Godot/Tools/GodotEditorSpatialGizmo.hs b/src/Godot/Tools/GodotEditorSpatialGizmo.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotEditorSpatialGizmo.hs
@@ -0,0 +1,8 @@
+module Godot.Tools.GodotEditorSpatialGizmo where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
diff --git a/src/Godot/Tools/GodotScriptCreateDialog.hs b/src/Godot/Tools/GodotScriptCreateDialog.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotScriptCreateDialog.hs
@@ -0,0 +1,11 @@
+module Godot.Tools.GodotScriptCreateDialog where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+script_created :: Signal GodotScriptCreateDialog
+script_created = Signal "script_created"
diff --git a/src/Godot/Tools/GodotScriptEditor.hs b/src/Godot/Tools/GodotScriptEditor.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/GodotScriptEditor.hs
@@ -0,0 +1,14 @@
+module Godot.Tools.GodotScriptEditor where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+editor_script_changed :: Signal GodotScriptEditor
+editor_script_changed = Signal "editor_script_changed"
+
+script_close :: Signal GodotScriptEditor
+script_close = Signal "script_close"
diff --git a/src/Godot/Tools/Godot_VisualScriptEditor.hs b/src/Godot/Tools/Godot_VisualScriptEditor.hs
new file mode 100644
--- /dev/null
+++ b/src/Godot/Tools/Godot_VisualScriptEditor.hs
@@ -0,0 +1,11 @@
+module Godot.Tools.Godot_VisualScriptEditor where
+import Data.Coerce
+import Foreign.C
+import Godot.Internal.Dispatch
+import System.IO.Unsafe
+import Godot.Gdnative.Internal
+import Godot.Gdnative.Types
+import Godot.Api.Auto
+
+custom_nodes_updated :: Signal Godot_VisualScriptEditor
+custom_nodes_updated = Signal "custom_nodes_updated"
