A downloadable addon

Download NowName your own price

⭐ Enjoy this free plugin?

I share these tools for free. If this plugin helps your game, a GitHub Star would be a small but meaningful encouragement to keep improving the project. Thank you!

⭐ Star the project on GitHub →

Open the repository, sign in to GitHub, then click the Star button near the top.

Completely optional. No donation or Star is required to download or use the plugins.


Free & open source — MIT License

Download the full addon for free. Donations on itch.io are optional and do not unlock extra features.

Use it in personal or commercial games, modify it, and redistribute it under the MIT License. Keep the copyright and permission notice with redistributed copies.

A lightweight restaurant customer queue and table assignment system for Godot 4. This lightweight Godot 4.7.2 addon provides Inspector-friendly customer and table Resources plus one Node for smallest-suitable table assignment, waiting states and explicit completion handoffs.

Restaurant Customer Queue System demo

Small, focused simulation systems for building a living world in Godot.

Features

  • Typed RestaurantCustomer and RestaurantTable Resources.
  • Strict FIFO queue with head-of-line blocking; no hidden priority or patience timer.
  • Smallest suitable table selection with registration-order ties.
  • Two-way runtime ownership without serializing a Resource reference cycle.
  • Caller-controlled states from ARRIVING through COMPLETED.
  • Exact state_changed callbacks only when a customer's state changes.

Perfect For

Restaurant prototypes, tavern seating, cafe arrivals, queue displays and simulations that already own their menu, service flow and timekeeping.

How It Works

Register tables and customers with RestaurantQueueManager. A valid arrival moves through QUEUING to SEATED when the queue head fits the smallest available table, or to WAITING_FOR_TABLE when it does not. Your game advances ordering, food, eating, paying and leaving explicitly. complete_customer() releases only its own table and immediately attempts the next FIFO party.

Quick API Example

customer.state_changed.connect(_on_state_changed)
manager.add_table(table)
manager.add_customer(customer)
customer.set_state(RestaurantCustomer.CustomerState.ORDERING)
customer.set_state(RestaurantCustomer.CustomerState.LEAVING)
manager.complete_customer(customer)
func _on_state_changed(old_state: int, new_state: int) -> void:
    print("Customer state: ", old_state, " -> ", new_state)

What It Does NOT Do

No menu, order system, money, payment processing, patience/timer subsystem, inventory, food, cooking, NPC AI, movement, navigation, calendar, save/load, database, networking, cutscenes or UI framework. This is a complementary independent logic API, not a built-in Godot integration.

Compatibility

Tested with Godot 4.7.2 stable on Windows using the Compatibility renderer. Other versions and operating systems are not certified by this release. No plugin activation is required.

Included Files

  • Reusable addon source in addons/restaurant_customer_queue/.
  • Runnable native demo and editable customer/table .tres Resources.
  • README API examples, MIT license and CHANGELOG.
  • Original native screenshot, animated preview and 630x500 store cover.

Works Great With

Compatible with other plugins in the Godot Simulation Systems collection. No plugin is required to use another. Each exposes independent APIs; combining them is controlled by your own game code.

Report an issue or suggest an improvement on GitHub. Please include the plugin name, Godot version and a minimal reproduction, without private data.

Updated 4 days ago
Published 9 days ago
StatusReleased
CategoryTool
Authorgrgy078033
GenreSimulation
TagsCozy, gdscript, Godot, godot4, Management, plugin, restaurant, tool, Tycoon
AI DisclosureAI Assisted, Code, Graphics, Text

Download

Download NowName your own price

Click download now to get access to the following files:

restaurant-customer-queue-v1.0.1.zip 18 kB

Leave a comment

Log in with itch.io to leave a comment.