Skip to content

A Godot plugin that provides a unified GDScript interface enabling the scheduling local notifications for Godot apps targeting Android and/or iOS.

License

Notifications You must be signed in to change notification settings

godot-sdk-integrations/godot-notification-scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

      


Godot Notification Scheduler Plugin

A unified GDScript interface for scheduling local notifications on Android and iOS.

Features:

  • Schedule local notifications with customizable titles, content, and delays.
  • Schedule repeating notifications with intervals.
  • Manage notification channels and badges.
  • Handle permissions and user interactions via signals.

Table of Contents


Installation

Uninstall previous versions before installing. If using both Android & iOS, ensure same addon interface version.

Options:

  1. AssetLib
    • Search for Notification Scheduler
    • Click DownloadInstall
    • Install to project root, Ignore asset root checked
    • Enable via Project → Project Settings → Plugins
    • Ignore file conflict warnings when installing both versions
  2. Manual
    • Download release from GitHub
    • Unzip to project root
    • Enable via Plugins tab

Usage

  1. Add a NotificationScheduler node to your scene.
  2. Connect signals:
    • initialization_completed
    • notification_opened
    • notification_dismissed
    • permission_granted
    • permission_denied
  3. Check permission:
    if not $NotificationScheduler.has_post_notifications_permission():
    	$NotificationScheduler.request_post_notifications_permission()
  4. To send user to App Info (manual enable):
    $NotificationScheduler.open_app_info_settings()
  5. Create a notification channel:
    var res = $NotificationScheduler.create_notification_channel(
    	 NotificationChannel.new()
    		  .set_id("my_channel_id")
    		  .set_name("My Channel Name")
    		  .set_description("My channel description")
    		  .set_importance(NotificationChannel.Importance.DEFAULT))
  6. Build & schedule notification:
    var data = NotificationData.new()
    	 .set_id(1)
    	 .set_channel_id("my_channel_id")
    	 .set_title("My Title")
    	 .set_content("My content")
    	 .set_small_icon_name("ic_custom_icon")
    	 .set_delay(10)
    
    var res = $NotificationScheduler.schedule(data)

Other Methods:

  • cancel(id) – cancel before opened/dismissed
  • set_badge_count(count) – set/remove app icon badge (iOS-only)
  • get_notification_id() – get ID of last opened notification

Signals

  • initialization_completed(): Emitted when the plugin is initialized.
  • notification_opened(notification_id: int): Emitted when a user taps notification.
  • notification_dismissed(notification_id: int): Emitted when a user dismisses notification.
  • permission_granted(permission_name: String): Emitted when permission is granted.
  • permission_denied(permission_name: String): Emitted when permission is denied.

Error Codes

Constant Value Description
ERR_ALREADY_EXISTS 1 Channel ID already exists
ERR_INVALID_DATA 2 Invalid notification/channel data
ERR_UNAVAILABLE 3 Not supported on current platform
ERR_UNCONFIGURED 4 Plugin not initialized
OK 0 Success

Platform-Specific Notes

Android

  • Default icon: ic_default_notification in res://assets/NotificationSchedulerPlugin
  • Custom icon:
    1. Generate via Android Studio → Image Asset StudioNotification Icons
    2. Copy generated drawables into res://assets/NotificationSchedulerPlugin
    3. Use set_small_icon_name("icon_name")
  • Troubleshooting:
    • Logs: adb logcat | grep 'godot' (Linux), adb.exe logcat | select-string "godot" (Windows)
    • No small icon error: ensure icons exist in assets directory.
    • Battery restrictions: check Settings → Apps → Your App → Battery.

iOS

  • Set notification icons in Project → Export → iOS.
  • System limits:
    • Max repeating notifications: 64
    • Min interval: 60 seconds
  • View XCode logs while running the game for troubleshooting.
  • See Godot iOS Export Troubleshooting.

Links


All Plugins

Plugin Android iOS
Notification Scheduler
Admob
Deeplink
Share
In-App Review

Credits


Contributing

This section provides information on how to build the plugin for contributors.


iOS

Prerequisites


Build

  • Run ./script/build.sh -A <godot version> initially to run a full build
  • Run ./script/build.sh -cgA <godot version> to clean, redownload Godot, and rebuild
  • Run ./script/build.sh -ca to clean and build without redownloading Godot
  • Run ./script/build.sh -h for more information on the build script

Android

Build

Options:

  1. Use Android Studio to build via Build->Assemble Project menu
    • Switch Active Build Variant to release and repeat
    • Run packageDistribution task to create release archive
  2. Use project-root-level build.sh script
    • ./script/build.sh -ca - clean existing build, do a debug build for Android
    • ./script/build.sh -carz - clean existing build, do a release build for Android, and create archive

About

A Godot plugin that provides a unified GDScript interface enabling the scheduling local notifications for Godot apps targeting Android and/or iOS.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

  •