diff --git a/src/character_actor.cpp b/src/character_actor.cpp
index 273d0fb..3667370 100644
--- a/src/character_actor.cpp
+++ b/src/character_actor.cpp
@@ -17,6 +17,7 @@ void CharacterActor::_bind_methods() {
 #define CLASSNAME CharacterActor
     GDPROPERTY_HINTED(rotation_speed_curve, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "Curve");
     GDPROPERTY_HINTED(target, Variant::OBJECT, PROPERTY_HINT_NODE_TYPE, "Node");
+    GDPROPERTY_HINTED(character_type, Variant::INT, PROPERTY_HINT_ENUM, "Neutral,Player,Enemy");
     GDPROPERTY(acceleration, Variant::FLOAT);
     GDPROPERTY(walk_speed, Variant::FLOAT);
     GDPROPERTY(sprint_speed, Variant::FLOAT);
@@ -195,6 +196,15 @@ void CharacterActor::set_state(goap::State state) {
     }
 }
 
+void CharacterActor::set_character_type(int character_type) {
+    this->character_type = static_cast<CharacterType>(character_type);
+    UtilityFunctions::print("set_character_type ", character_type);
+}
+
+int CharacterActor::get_character_type() const {
+    return static_cast<int>(this->character_type);
+}
+
 void CharacterActor::process_behaviour(double delta_time) {
     if(this->current_state.is_complete(this) || this->planner->is_action_complete())
         this->set_state(this->planner->get_next_state());
diff --git a/src/character_actor.hpp b/src/character_actor.hpp
index 11279b4..c106158 100644
--- a/src/character_actor.hpp
+++ b/src/character_actor.hpp
@@ -70,7 +70,9 @@ public:
     Node *get_target() const;
     goap::Planner *get_planner() const;
     void set_state(goap::State state);
-
+    void set_character_type(int character_type);
+    int get_character_type() const;
+    // character settings
     void set_acceleration(float acceleration);
     float get_acceleration() const;
     void set_walk_speed(float walk_speed);
@@ -113,6 +115,8 @@ private:
     Ref<CharacterData> data;
     float fire_interval{0.f}; // derived from 1 / the current weapon's rps
 
+    CharacterType character_type{CharacterType::NEUTRAL};
+
     float acceleration{20.f};
     float walk_speed{3.f};
     float sprint_speed{5.f};