Check out our latest project ✨ OpenChapter.io: free ebooks the way its meant to be 📖

AWS Amplify

An asset by fnowak
The page banner background of a mountain and forest
AWS Amplify hero image

Quick Information

0 ratings
AWS Amplify icon image
fnowak
AWS Amplify

A powerful Godot Engine plugin that seamlessly integrates AWS Amplify services into your game projects. This plugin enables game developers to leverage AWS cloud capabilities directly within the Godot environment, providing authentication, data storage, API access, and more with minimal configuration.

Supported Engine Version
4.3
Version String
0.3.2
License Version
MIT
Support Level
community
Modified Date
16 days ago
Git URL
Issue URL

AWS Amplify for Godot Engine - Plugin

README GitHub release README Open Bugs README Feature Requests README Closed Issues

A powerful Godot Engine plugin that seamlessly integrates AWS Amplify services into your game projects. This plugin enables game developers to leverage AWS cloud capabilities directly within the Godot environment, providing authentication, data storage, API access, and more with minimal configuration.

Key Features

  • Easy Integration: Simple installation process with minimal setup required
  • Authentication: Complete user authentication flows with sign-up, sign-in, and account management
  • Data Management: GraphQL-based data operations for game state persistence
  • API Access: Simplified HTTP client for interacting with AWS resources
  • UI Components: Ready-to-use authentication forms for rapid implementation
  • Amplify Compatibility: Designed to work with AWS Amplify deployed resources

Documentation

For comprehensive documentation, tutorials, and examples, visit our official documentation.

Getting Started

Jump right into your Godot CI/CD pipeline with our comprehensive resources:

Installation

Plugin Versions

Version Godot Compatibility Download Changelog
0.3.2 4.3+ Download View

Download the Plugin

  1. Go to the GitHub Release Section
  2. Click on the latest release
  3. Download the source code
  4. Extract the plugin code
  5. Copy the addons/aws-amplify folder to the root of your Godot project

Enable the Plugin

  1. Open Project → Project Settings → Plugins
  2. Find "AWS Amplify" in the list and click the "Enable" checkbox
  3. The plugin automatically loads the aws_amplify singleton when enabled

The AWS Amplify Plugin is now ready to be used in your project!

Usage Examples

Authentication

# Sign up a new user
aws_amplify.auth.sign_up("username", "password", {
    "email": "[email protected]",
    "name": "Player One"
})

# Sign in an existing user
aws_amplify.auth.sign_in("username", "password")

# Sign out
aws_amplify.auth.sign_out()

Data Operations

# Query data
var operation = """
query ListItems {
    listItems {
        items {
            id
            name
            description
        }
    }
}
"""
aws_amplify.data.query(operation, "ListItems")

# Create data with mutation
var create_operation = """
mutation CreateItem($input: CreateItemInput!) {
    createItem(input: $input) {
        id
        name
        description
    }
}
"""
aws_amplify.data.mutation(create_operation, "CreateItem", {
    "input": {
        "name": "Magic Sword",
        "description": "A powerful weapon"
    }
})

Using UI Components

# Add the auth form to your scene
var auth_form = load("res://addons/aws-amplify/runtime/ui/auth_form.tscn").instantiate()
add_child(auth_form)

# Configure the form
auth_form.set_form_type("sign_in") # Options: sign_in, sign_up, confirm_sign_up, etc.

# Connect to signals
auth_form.connect("sign_in_success", Callable(self, "_on_sign_in_success"))
auth_form.connect("sign_in_error", Callable(self, "_on_sign_in_error"))

Architecture

The plugin is organized in the same way as the amplify-js client. The base class AWSAmplify contains several modules, each implementing specific features. You can access each module from the base class directly with the global variable aws_amplify.

Module Overview

Client Module

This module offers basic features to send HTTP requests to AWS resources.

# Send a GET request
aws_amplify.client.get_json("https://api.example.com/endpoint", [], {})

# Send a POST request with JSON body
aws_amplify.client.post_json("https://api.example.com/endpoint", [], {"key": "value"})

View Client Module Source

Authentication Module

This module provides comprehensive authentication features.

# Get user attributes
var user_attributes = aws_amplify.auth.get_user_attributes()

# Update user attributes
aws_amplify.auth.update_user_attribute("custom:level", "10")

View Authentication Module Source

Data Module

This module offers GraphQL features for data operations.

# Subscribe to real-time updates
aws_amplify.data.subscription(subscription_operation, "OnCreateItem")

View Data Module Source

API Reference

Client Module

HTTP Requests (Raw)

  • get_(endpoint: String, headers: Array, body: String)
  • post(endpoint: String, headers: Array, body: String)
  • put(endpoint: String, headers: Array, body: String)
  • delete(endpoint: String, headers: Array, body: String)
  • send(endpoint: String, headers: Array, method: HTTPClient.Method, body: String)

HTTP Requests (JSON)

  • get_json(endpoint: String, headers: Array, json_body: Dictionary)
  • post_json(endpoint: String, headers: Array, json_body: Dictionary)
  • put_json(endpoint: String, headers: Array, json_body: Dictionary)
  • delete_json(endpoint: String, headers: Array, body: Dictionary)
  • send_json(endpoint: String, headers: Array, method: HTTPClient.Method, json_body: Dictionary)

Authentication Module

Sign-Up

  • sign_up(username, password, options: Dictionary = {})
  • confirm_sign_up(username: String, confirmation_code: String, options: Dictionary = {})
  • resend_sign_up_code(username, options: Dictionary = {})

Sign-In

  • sign_in(username, password, options: Dictionary = {})
  • reset_password(username, options: Dictionary = {})
  • confirm_reset_password(username, new_password, confirmation_code, options: Dictionary = {})
  • update_password(old_password, new_password, options: Dictionary = {})

Sign-Out

  • sign_out(global: bool = false)
  • refresh_token(refresh_token)

User Attributes

  • update_user_attributes(user_attributes: Dictionary, options: Dictionary = {})
  • update_user_attribute(user_attribute_name: String, user_attribute_value, options: Dictionary = {})
  • confirm_user_attribute(attribute_name: String, confirmation_code: String, options: Dictionary = {})
  • send_user_attribute_confirmation_code(attribute_name: String, confirmation_code: String, options: Dictionary = {})
  • delete_user_attributes(user_attribute_names: Array[String])

Cached Variables Manipulation

  • get_token(name)
  • get_user_attribute(name: String, refresh_attributes = false)
  • get_user_attributes(refresh_attributes = false)
  • add_user_attributes(user_attributes: Dictionary)
  • remove_user_attributes(keys: Array)
  • refresh_user(refresh_token = false, refresh_user_attributes = false)

Authenticated HTTP Requests

  • Various authenticated HTTP request methods (same signature as Client module)

Data Module

  • query(operation, operation_name = "MyQuery", authenticated: bool = true)
  • mutation(operation, operation_name = "MyMutation", authenticated: bool = true)
  • subscription(operation, operation_name = "MySubscription", authenticated: bool = true)
  • send(operation, operation_name, method: GraphQLMethod, authenticated: bool = true)

UI Components

The plugin offers sign-up, sign-in, and sign-out forms to handle various user authentication flows.

View Auth Form Source

For examples of how to use these forms, check our sample repository.

Community

Join our community to get help, share ideas, and collaborate:

README join sligh games discord README join aws amplify discord README join godot engine discord

For technical questions and feature discussions, visit our GitHub Discussions.

Security

If you discover a potential security issue, please DO NOT create a public GitHub issue. Instead, send an email directly to [email protected]. This helps us address security vulnerabilities promptly and responsibly.

Issues

If you encounter any issues with the plugin, report a bug. If you have ideas for new features, create a feature request.

Contributing

We welcome contributions from the community! See CONTRIBUTING for more information on how to get involved.

License

This library is licensed under the MIT License. See the LICENSE file for details.

Third Party Licenses

See THIRD_PARTY_LICENSES for information about third-party components used in this project.

A powerful Godot Engine plugin that seamlessly integrates AWS Amplify services into your game projects. This plugin enables game developers to leverage AWS cloud capabilities directly within the Godot environment, providing authentication, data storage, API access, and more with minimal configuration.

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
AWS Amplify icon image
fnowak
AWS Amplify

A powerful Godot Engine plugin that seamlessly integrates AWS Amplify services into your game projects. This plugin enables game developers to leverage AWS cloud capabilities directly within the Godot environment, providing authentication, data storage, API access, and more with minimal configuration.

Supported Engine Version
4.3
Version String
0.3.2
License Version
MIT
Support Level
community
Modified Date
16 days ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers