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

    • 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
  • 🐧Ubuntu Linux Setup
  • 🍎 Mac OS Setup
  • 🖥️ Setup for Windows
  • 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
    • 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
  • 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.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

Crossplay

  • Namazu Crossfire
  • Deploying Namazu Crossfire in Your Game
View Categories
  • Home
  • Docs
  • Custom Code
  • Properties

Properties

Est. read time: 2 min read

These are the various properties that can be added to your properties file or added to your custom Element code.

The properties file would be in the custom Element deployment directory, named dev.getelements.element.attributes.properties. The properties below can be defined or overridden within this file. For example:
dev.getelements.elements.app.serve.prefix=example-element
would cause the deployed Element to be given the name “example-element” and any endpoint defined within the Element would serve at /app/rest/example-element/<endpoint>

You can also define your own properties and inject them using the @Named annotation, like so

@Inject
public void setDefaultUserName(@Named(DEFAULT_USER_NAME) String defaultUserName) {
this.defaultUserName = defaultUserName;
}

Note

To avoid potential conflicts, you should name properties using “com.mycompany” or whatever your domain is, instead of “dev.getelements”

For more information on how to structure a deployment, see Deploying an Element.

Default Root User Settings #

/**
* The email/username to use for the default user.
*/
@ElementDefaultAttribute("root")
public static final String DEFAULT_USER_NAME = "dev.getelements.elements.user.default.name";

/**
 * The email/username to use for the default user.
 */
@ElementDefaultAttribute("root@example.com")
public static final String DEFAULT_USER_EMAIL = "dev.getelements.elements.user.default.email";

/**
 * The email/username to use for the default user.
 */
@ElementDefaultAttribute("example")
public static final String DEFAULT_USER_PASSWORD = "dev.getelements.elements.user.default.password";

Element Settings #

/**
* Defines an attribute which specifies the prefix for the element. At 
* load-time, loader will inspect the attributes from the Element. 
* If blank, then the loader will defer to the value of the 
* ElementDefinition, which would typically be the name of the package 
* bearing the annotation.
*
* This attribute forces the name of the Element to the assigned value when 
* running locally in the IDE, which determines the path as well.
*
* For example, the below value will produce the relative path 
* /app/rest/example-element, which any custom endpoints will append to.
*/
@ElementDefaultAttribute("")
String APPLICATION_PREFIX = "dev.getelements.elements.app.serve.prefix";
/**
* Defines an attribute which specifies if the elements should enable the 
* standard auth pipeline in Elements.
* This ensures that the application server will be able to authenticate 
* users using the Authorization or Elements-SessionSecret headers as well 
* as allow the appropriate override headers to be used.
* 
* If set to "true", the application will use the built in authentication 
* service.
* If set to "false", the application will not use the authentication 
* service and you will need to provide your own.
*
* Specifically when the dev.getelements.elements.auth.enabled attribute is 
* set to "true", we will automatically install a set of filters that will 
* ensure that the user is authenticated and applied to the service layer 
* for all requests.
*/
@ElementDefaultAttribute("")
String ENABLE_ELEMENTS_AUTH = "dev.getelements.elements.auth.enabled";

Advanced Options #

/**
* The storage directory for the git repositories housing the application's 
* script storage.
*/
@ElementDefaultAttribute("cdn-repos/git")
public static final String GIT_CDN_STORAGE_DIRECTORY = "dev.getelements.elements.git.cdn.storage.directory";

/**
* The storage directory for the git repositories housing the application's 
* script storage.
*/
@ElementDefaultAttribute("script-repos/git")
public static final String ELEMENT_STORAGE_DIRECTORY = "dev.getelements.elements.rt.git.element.storage.directory";

/**
* Used to specify the RPC provider for bsc blockchain.
*/
@ElementDefaultAttribute("https://data-seed-prebsc-1-s1.binance.org:8545")
String BSC_RPC_PROVIDER = "dev.getelements.elements.blockchain.bsc.provider";

/**
 * Used to specify the session timeout, in seconds
 */
@ElementDefaultAttribute("172800")
String SESSION_TIMEOUT_SECONDS = "dev.getelements.elements.session.timeout.seconds";

/**
 * Used to specify the mock session timeout.
 */
@ElementDefaultAttribute("3600")
String MOCK_SESSION_TIMEOUT_SECONDS = "dev.getelements.elements.mock.session.timeout.seconds";

/**
 * Used to specify the host for neo blockchain.
 */
@ElementDefaultAttribute("http://127.0.0.1")
String NEO_BLOCKCHAIN_HOST = "dev.getelements.elements.blockchain.neo.host";

/**
 * Used to specify the port for neo blockchain.
 */
@ElementDefaultAttribute("50012")
String NEO_BLOCKCHAIN_PORT = "dev.getelements.elements.blockchain.neo.port";

/**
 * Used to specify the file path for static content.
 */
@ElementDefaultAttribute("content")
String CDN_FILE_DIRECTORY = "dev.getelements.elements.cdnserve.storage.directory";

/**
 * Used to specify the endpoint file path for cloning static content.
 */
@ElementDefaultAttribute("clone")
String CDN_CLONE_ENDPOINT = "dev.getelements.elements.cdnserve.endpoint.clone";

/**
 * Used to specify the endpoint for serving static content.
 */
@ElementDefaultAttribute("serve")
String CDN_SERVE_ENDPOINT = "dev.getelements.elements.cdnserve.endpoint.serve";
What are your Feelings
Still stuck? How can we help?

How can we help?

Updated on August 27, 2025
Preparing for Code GenerationWebsockets
Table of Contents
  • Default Root User Settings
  • Element Settings
  • Advanced Options
  • 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.