CHARACTERS
Creating a Character
You can create a character template by clicking the + button in the Character section.
A character template is a reusable blueprint that defines the behavior, attributes, and appearance of a character in the game.
To create an instance of a character, simply drag and drop the character template into the map.
Tools
There are two tools available for editing character templates:
- Code Tool – Edit the Python class that defines the character’s behavior.
- Data Tool – Set the initial attributes of the character.
Both tools overlap in functionality. You could set all attributes via code in the startup event, but the Data Tool provides a more convenient way to configure the initial state of a character.
Info
Currently, the Code Tool supports only Python scripting. A visual, node-based scripting alternative will be available before v1.
Code Tool
After creating a character and activating the Code Tool, you will see a Python class that defines the character’s behavior.
class NewCharacter:
def event(self, event, value):
pass
def user_event(self, event, value):
if event == 'key_down':
if value == 'w':
action("forward")
if value == 'a':
action("left")
if value == 'd':
action("right")
if value == 's':
action("backward")
if event == 'key_up':
action("none")
If you rename the class (default: NewCharacter
), the character template name will update automatically in the Character section.
Tip
The Python class name is also the character template name.
Events
Eldiron uses events to trigger actions.
Events are categorized into:
- System Events – Triggered by the game engine.
- User Events – Triggered by the player.
System events call the event
method, while user events call the user_event
method.
System Events
Example: The startup
event is called when a character is created. The bump_item
event is triggered when a character collides with an item.
class Player:
def event(self, event, value):
if event == 'startup':
register_player()
set_attr("STR", 10)
In this example:
- The character is registered as a player (receives user input events).
- The STR (Strength) attribute is set to 10.
User Events
The user_event
method is only needed for player characters and can be omitted for NPCs.
In the earlier example, user_event
handles keyboard input, allowing the player to move using the WASD keys.
Instances
When you drag a character template into the map, it creates a new instance.
The Character section lists all character instances in the region. Characters are displayed with a human avatar on the map.
Tip
Click & Drag a character in the map to move it. Press ‘Delete’ to remove a character instance.
Instance Initialization
When a character instance is selected in the Region section, the Code Tool will display its instance initialization script:
def setup():
"""Initialize the character instance"""
pass
This script allows instance-specific configurations.
The setup
method in the template applies to all characters of that type, while the instance script allows customization of individual characters.
Example: Creating a Stronger Orc
You have a general Orc
template, but you want a stronger Orc guarding a chest.
def setup():
set_attr("STR", 15)
This makes only this Orc instance stronger by setting its Strength (STR) to 15.
Data Tool
The Data Tool allows you to edit the initial attributes of character instances.
Example TOML configuration:
[attributes]
STR = 10
# The character is visible on the map
visible = true
# The radius of the character's collision circle
radius = 0.5
In this example:
"STR"
is set to 10 (same as in the Code Tool)."visible = true"
ensures the character appears on the map."radius = 0.5"
defines the collision area.
Using the Data Tool is often more convenient than setting attributes in code, especially for common properties.
Learn More
See the Scripting & Data Reference for a complete list of available events, commands, actions, and data properties.