diff --git a/init.lua b/init.lua
index aac1b66..90cd3e4 100644
--- a/init.lua
+++ b/init.lua
@@ -260,6 +260,28 @@ local function handle_command(name, param)
 			minetest.chat_send_player(name, S("Ownership has been transferred to @1", target))
 			return true
 		end
+	elseif action == "invite" then
+		if not minetest.get_player_privs(name).playerfactions_admin then
+			minetest.chat_send_player(name, "Permission denied: You can't use this command, playerfactions_admin priv is needed.")
+		else
+			local target = params[2]
+			local faction_name = params[3]
+			if facts[faction_name] == nil then
+				minetest.chat_send_player(name, "The faction doesn't exist")
+			elseif not minetest.player_exists(target) then
+				minetest.chat_send_player(name, "The player doesn't exist")
+			elseif factions.get_player_faction(target) ~= nil then
+				minetest.chat_send_player(name, S("The player is already in the faction \"@1\"",factions.get_player_faction(target)))
+			else
+				if factions.join_faction(faction_name, target) then
+					minetest.chat_send_player(name, "The player is now a member of the guild")
+					return true
+				else
+					minetest.chat_send_player(name, S("Error on adding @1 into @2, please verify parameters and try again", target, faction_name))
+					return true
+				end
+			end
+		end
 	else
 		minetest.chat_send_player(name, S("Unknown subcommand. Run '/help factions' for help"))
 	end