Skip to content

Latest commit

Β 

History

662 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Fox

License version

🦊 Fox provides tooling while developing with Godot Engine.

From the first scene to the store page: a skeleton to hang your game on, GDScript libs that spare you the boilerplate, and one CLI to run, export and publish on Steam and itch.io.

Fox

The skeleton

A Fox game is a Godot project with one root scene, one router, and screens. Fox brings the three of them, then gets out of the way.

your-game/
β”œβ”€β”€ addons/fox/          # the runtime, pinned at the version you chose
β”œβ”€β”€ fox.config.json      # bundles, exports, stores
β”œβ”€β”€ project.godot
└── src/
    β”œβ”€β”€ app.tscn         # app > scene + hud
    β”œβ”€β”€ app.gd
    β”œβ”€β”€ router.gd
    └── screens/
        β”œβ”€β”€ home.tscn
        └── home.gd

app.gd boots the tree Fox expects, and opens your first screen:

extends 'res://addons/fox/core/app.gd'

func _ready():
  super._ready()
  Router.openHome()

router.gd names your screens once. From anywhere in the game, navigation is then a single call, Router.openHome({level = 3}), with transitions, a loader and the restored navigation state included:

extends 'res://addons/fox/core/router.gd'

var home = preload('res://src/screens/home.tscn')

func openHome(options = {}):
  openScene(home, options)

A screen extends FoxScreen: the router instantiates it, hands it what the navigation passed, and it relays out on its own when the window is resized: the Steam Deck ↔ desktop split costs nothing per screen.

extends FoxScreen

func onOpen(options):
  _layout()

func _onViewportResized():
  _layout()

Everything else is autoloads you call directly: Animate and Motion for tweens and idle motion, Sound, HTTP, Controls, Steam, Leaderboard, Gesture, and the __ utility belt.

The CLI

One command per step of a game's life, the same on macOS, Linux and Windows:

fox run:game                # run your game, hot reloading as you code
fox export                  # export a bundle for one of your presets
fox publish steam release   # upload it to the store

Version bumps, asset imports, icons, splashscreens and store screenshots have their command too: see the CLI reference.

Installation

One command, run from your Godot project, on macOS, Linux and Windows (Git Bash or WSL):

cd your-game
curl -fsSL https://raw.githubusercontent.com/uralys/fox/main/install.sh | sh

It installs both halves of Fox from the same release: the runtime, mounted at res://addons/fox and committed with your game, and the global fox executable. The CLI is optional, and needs NodeJS >= 26: without it the addon is mounted all the same, since it needs nothing but Godot.

Then enable the plugin once from Project > Project Settings > Plugins > Fox: it registers the G, DEBUG and Gesture autoloads, and leaves alone any autoload your game already declares.

Your game is now pinned, and moves to the next Fox when you decide to: fox upgrade swaps addons/fox for a released version, whole, and pins the executable with it. Every other command tells you when there is one to take, reading the latest release at most once every six hours: fox and fox --help check on the spot, and print the notice under the command table.

The full walkthrough (prerequisites, main scene, optional autoloads) is in Installing Fox.

Coming from Fox 1.x? The runtime moved from res://fox/ to res://addons/fox/: see the 2.0.0 release notes for the migration steps.

Documentation

The full index lives in docs:

  • Core: globals, router, screens & responsive, sound, files, Steam, leaderboard
  • Input: controls, touch & drag, multitouch, draggable camera
  • Animation & UI: Animate, Motion, popups, components
  • Libs & utilities: HTTP, __, frame probe, in-app purchases
  • CLI: install, commands, hot reload, versions
  • Exporting & shipping: building, exporting, images, publishing, Android & iOS

Games created with Fox

faraday-corridors sylvestrine xoozz battle-squares avindi lockeyland lockeyland battle-squares

About

🦊 Addon for Godot 4

Topics

Resources

Contributing

Stars

174 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages