Skip to content

Instantly share code, notes, and snippets.

View jamonholmgren's full-sized avatar

Jamon Holmgren jamonholmgren

View GitHub Profile

Lobby API Documentation

The Lobby node handles Godot 4.x multiplayer game session management, including hosting, joining, and basic player state synchronization.

You can use this to

Setup

  1. Copy all 3 files (Lobby.gd, LobbyClient.gd, and LobbyServer.gd) into your project
  2. Make Lobby.gd a Global in Project Settings and name it "Lobby"
@jamonholmgren
jamonholmgren / react-native-skills.md
Created November 7, 2024 20:58
Important React Native skills - as of 2024

In rough order, skills that I find important for React Native developers:

  • React fundamentals -- JSX, useState, useEffect, useMemo, useContext, useRef, providers
  • Other useful React APIs
  • TypeScript
  • Expo & Expo ecosystem
  • State management (at least 1)
  • React Navigation
  • Debugging skills, tools
  • AI coding assistants familiarity
@jamonholmgren
jamonholmgren / not-authorized-system-events.md
Created November 1, 2024 22:04
execution error: Not authorized to send Apple events to System Events.

I just ran into this error when trying to run an Expo / React Native app:

28:69: execution error: Not authorized to send Apple events to System Events. (-1743)

This issue is relevant, but locked so I can't add info to it:

expo/expo#1966

You are an email prioritization assistant. Analyze the following email and determine its priority level.
Consider these factors for priority classification:
GENERAL FACTORS:
- Sender importance and relationship
- Time sensitivity of the content
- Required actions or responses
- Impact of delayed response
- Complexity of the request
@jamonholmgren
jamonholmgren / rubymotion-post.md
Last active August 28, 2024 15:58
Forum post that I made about RubyMotion in Jan 2016

(Fetched from https://web.archive.org/web/20171113033553/http://community.rubymotion.com/t/so-react-native-impacts-on-rubymotion/1363)

So, React-Native -- impacts on RubyMotion

Bill - 2016-01-25 15:36:44 UTC

Really don't want to stir up controversy here, but what impacts are we as a community facing or expecting from React-Native? The React-Native story seems compelling, but I have a deep aversion to JavaScript in all its forms and variants. It's one reason I'm doing RubyMotion rather than Rails. 😏

I confess to being at least slightly concerned/disturbed by the significant interest being shown in it by Infinite Red, who have produced gems I rely on. I'm fairly distanced from the broader reaches of the tech community (the nice way to say I'm narrowly focused, I guess) so have no clue how this is landing in the development world at large. But I'm concerned for RubyMotion as I find it a wonderful platform for iOS development. I'm expecting the same to emerge for Android as the various gems prolife

@jamonholmgren
jamonholmgren / one-shot-effect.gd
Last active July 29, 2024 02:18
This is a script in GDScript (Godot 4.2) that allows you to set a Node3D as the parent of several GPUParticles3D effects which are all one-shot effects. When you call `trigger()` on it, it'll start them all. When they are all finished, it kills the node. Remember to add all your effects as children to this node.
class_name SingleEffect extends Node3D
var effects: Array[GPUParticles3D] = []
var effects_completed: int = 0
func _ready():
# get all the GPUParticles3D nodes under this node
for child in get_children():
if child is GPUParticles3D: effects.append(child)
@jamonholmgren
jamonholmgren / autobuild.md
Created July 11, 2024 23:47
macOS script for automatically building

Here's a way to build your Godot 4 game automatically from macOS terminal.

#!/bin/bash

# Constants
PROJECT_PATH="$(pwd)"
EXPORT_PRESET="Windows Desktop"
OUTPUT_DIR="./Builds"
LOG_FILE="$OUTPUT_DIR/export_log.txt"
@jamonholmgren
jamonholmgren / 0-usage.md
Last active May 3, 2024 23:30
undo/redo in Legend State

Use this trackHistory functionality like so:

const state$ = observable({
  name: "Hello",
  whatever: [],
})

const { undo, redo, undoable$, redoable$ } = trackHistory(state$)

Reactotron Tooling Goals

Not necessarily in strict order of preference; need to think about what's most important here

  1. Streamline the rollup setup, which is old and semi-inconsistent across packages
  2. Potentially move away from electron-builder (and webpack) and to something like electron-forge, perhaps vite as well https://www.electronforge.io/templates/vite-+-typescript
  3. Simplify the monorepo setup; currently using Nx, is there something better? Turborepo? We are using turbo on react-native-mlkit
  4. Potentially move away from semantic-release and toward changeset instead? We are using changesets for react-native-mlkit as well
  5. Simplifying all other configs, like tsconfig, eslint, prettier. There is a lot of copy and paste.
  6. Add a config (or .config?) directory and then put simpler common configuration packages in it so that most of the workspaces just have extends: "reactotron-tsconfig" or
@jamonholmgren
jamonholmgren / minecraft-child-account.md
Last active November 23, 2024 19:06
Minecraft, fixing the "Multiplayer is disabled. Please check your Microsoft account settings." frustrating issue

I have a Microsoft Family account and have my daughter as one of the family members.

Whenever she tries to play Minecraft (Java Edition) with us, it pops up something like the following:

"Multiplayer is disabled. Please check your Microsoft account settings."

I tried all kinds of things found online. They kept saying to go to the Xbox Privacy and online safety screen, but I couldn't find the "You can play with people outside of Xbox Live" and "You can join multiplayer games" settings. Well, that's because I needed to click on the "Xbox Series ... and Windows 10 devices Online Safety" tab.

Here's a direct link. You will need to replace the "GAMERTAGHERE" with your child's gamer tag. You need to be logged in under your (parental) account, not the child's.