Skip to content
  • Our Product
    • Namazu Elements
      • What is Elements?
      • Why open source?
      • Docs
        • Elements in Five Minutes or Less
        • RESTful APIs Library
        • Security Model
        • Accessing the Web UI (CMS)

    Our Product

    A logomark with three layered rhombuses adorning the lettermark that says Elements in bold all-caps sans-serif letters.
    • What is Namazu Elements? Discover our easy-to-use backend network solution built for online games. Rapidly enables full-scale multiplayer games or online solo adventures.
    • Why open source? Is there a truly open source server backend for connected games? There is now. Download and run a local copy of Namazu Elements and try it for yourself.
    Download Namazu Elements

    Get started

    • Quick start Read our Elements 5-minute quick start guide
    • Documentation Read our developer docs for learning more about Elements
    • RESTful APIs A full list of core API specs for working with the Elements framework
    • Security An overview of the server-authoritative security model of Elements
    • Accessing the CMS Manage your game with ease via the Namazu Elements CMS.

    Co-development Reimagined

    • Reduce your costs Would you rather outsource your backend development? Hire Namazu Studios to build your server backend with the power of Namazu Elements.
      Co-dev

    Recent Posts

    • The watercolor-styled Namazu Studios logo over a giant namazu lurking in the depth
      Namazu Studios Featured in San Diego Business Journal
      22 Sep 2025 Press
    • Namazu Elements 3.1 Released – Service Layer Fixes, Secure APIs, and Steam Bug Fix
      22 Apr 2025 Release Notes
  • Case Studies
  • About Us
  • News
  • Services
  • Book a call
namazu-studios-logo
Book a call

Getting Started

  • Elements in Five Minutes or Less
  • Accessing the Web UI (CMS)
  • General Concepts
  • N-Tier Architecture
  • Security Model

Namazu Elements Core

  • User Authentication / Sign In
    • What is a User?
    • User Authentication in Elements
    • Auth Schemes
      • Auth Schemes
      • OAuth2
      • OIDC
  • Features
    • Applications
    • Sessions
    • Users and Profiles
    • Digital Goods
    • Progress and Missions
    • Progress and Missions (3.4+)
    • Leaderboards
    • Matchmaking – Comprehensive Guide
    • Followers
    • Friends
    • Receipts
    • Reward Issuance
    • Save Data
    • Metadata
    • Metadata (3.4+)
    • Queries
    • Web3
      • Wallets
      • Vaults
      • Omni Chain Support
      • Smart Contracts
        • Smart Contracts
  • Queries
    • Advanced Operators
    • Object Graph Navigation
    • Boolean Queries
    • Base Query Syntax
  • Advanced Operators
    • .name
    • .ref

Custom Code

  • Custom Code Overview
  • Windows Setup
  • Mac OS Setup
  • Ubuntu Linux Setup
  • Introduction to Guice and Jakarta in Elements
  • Structuring your Element
  • Packaging an Element with Maven
  • Deploying an Element
  • Preparing for code generation
  • Properties
  • Websockets
  • RESTful APIs
  • Direct MongoDB Access (3.5+)

Releases

  • 3.5 Release Notes
  • 3.4 Release Notes
  • 3.3 Release Notes
  • 3.2 Release Notes
  • 3.1 Release Notes

Configuration

  • Matchmaking – Comprehensive Guide
  • Direct Database Access and Batch Configuration
  • Batch Samples
    • Mission Upload Bash Script Sample
    • Item Upload Bash Script Sample

RESTful APIs

  • RESTful APIs Library
  • Swagger and Swagger UI

Add-Ons

  • Custom Elements
    • Crossplay
      • Namazu Crossfire (Multiplayer)
      • Deploying Namazu Crossfire in your game
  • Game Engines
    • Unity
      • Elements Codegen
      • Crossfire
    • Roblox
      • Roblox Overview
      • Secure Player Authentication & Registration
      • Global Matchmaking
      • Roblox Security Best Practices

Troubleshooting

  • Common Issues with Docker
  • Local SDK
    • Unable to deploy application : dev.getelements.elements.sdk.exception.SdkElementNotFoundException
    • Could not load class : java.lang.NoClassDefFoundError
  • Namazu Elements Community Edition
    • Common Issues with Docker
    • Unable to deploy application : dev.getelements.elements.sdk.exception.SdkElementNotFoundException
View Categories
  • Home
  • Docs
  • Namazu Elements Core
  • Features
  • Metadata

Metadata

Est. read time: 1 min read


Metadata in Elements provides a flexible way to define and store structured information.
It consists of two parts:

  1. Metadata Specs – define the schema (types and structure).
  2. Metadata Objects – store actual data, validated against a spec.

This lets you enforce consistency across different parts of your game/application, while still allowing for flexible definitions.


Metadata Specs #

A Metadata Spec is a schema that describes what a metadata object should look like.

Structure #

A spec has:

  • name: A unique identifier for the spec.
  • properties: A list of fields, each with a type and optional values.

Property Types #

Each property has a name and a type. Four types are supported:

TypeDescriptionExtras
STRINGA text fieldOptional placeholder value
NUMBERA numeric field (int or float)Optional placeholder value
BOOLEANA true/false value–
OBJECTA nested structure containing its own propertiesProperties can be any of the four types

Example Spec

{
  "name": "WeaponSpec",
  "properties": [
    { "name": "damage", "type": "NUMBER", "placeholder": 10 },
    { "name": "rarity", "type": "STRING", "placeholder": "common" },
    { "name": "isLegendary", "type": "BOOLEAN" },
    {
      "name": "stats",
      "type": "OBJECT",
      "properties": [
        { "name": "range", "type": "NUMBER", "placeholder": 100 },
        { "name": "weight", "type": "NUMBER" }
      ]
    }
  ]
}

Metadata Objects #

A Metadata Object is an actual piece of data created based on a Metadata Spec.

Structure #

A metadata object has:

  • name: A human-readable identifier.
  • access level: Controls who can see this object:
    • Unprivileged – visible to anyone.
    • User – visible only to logged-in users.
    • Superuser – visible only to administrators.
  • spec: The Metadata Spec that defines its structure.
  • data: A map of values that follows the rules from the spec.

Example Object #

Using the WeaponSpec defined earlier:

{
  "name": "Excalibur",
  "accessLevel": "User",
  "spec": "WeaponSpec",
  "data": {
    "damage": 50,
    "rarity": "legendary",
    "isLegendary": true,
    "stats": {
      "range": 150,
      "weight": 5
    }
  }
}

Scoping #

Metadata objects can be attached globally or scoped to specific domains within Elements:

  • Global – accessible across the entire application.
  • User Profile – metadata specific to a given user.
  • Application – metadata tied to the app instance.
  • Items – metadata attached to inventory/game objects.

This makes metadata a flexible tool for storing structured information at different levels of your system.


Access Control #

When querying metadata objects, Elements automatically filters results based on the user’s access level:

  • Unprivileged users only see Unprivileged metadata.
  • Users see both Unprivileged and User metadata.
  • Superusers see everything.

This ensures sensitive or internal metadata is never leaked to unintended clients.


Common Use Cases #

  • Defining item properties (weapons, gear, consumables).
  • Creating application-level configs.
  • Attaching custom profile attributes to users.
  • Storing dynamic game data (quests, NPC definitions, world states).

Summary #

  • Specs define what metadata looks like.
  • Objects hold the actual data, validated against a spec.
  • Access levels control visibility.
  • Scoping lets you attach metadata where it’s needed — global, user, app, or items.
What are your Feelings
Still stuck? How can we help?

How can we help?

Updated on August 27, 2025
Save DataQueries
Table of Contents
  • Metadata Specs
    • Structure
    • Property Types
  • Metadata Objects
    • Structure
    • Example Object
  • Scoping
  • Access Control
  • Common Use Cases
  • Summary
  • Documentation
  • Terms of Service
  • Privacy Policy
  • Contact us
  • Linkedin
  • Join our Discord

Namazu Studios LLC is powered by Namazu Elements, an Elemental Computing Inc. product.

Elements
  • Download
  • About Elements
  • Open source
  • Documentation
  • Support
About Namazu
  • Case Studies
  • About Us
  • News
Get in Touch
  • info@namazustudios.com
  • Book a call
  • (619) 862-2890
  • Linkedin
  • Discord

©2008-2025 Namazu Studios. All Rights Reserved.