mirror of
				https://github.com/R2Northstar/Northstar
				synced 2025-11-02 05:10:52 +01:00 
			
		
		
		
	Compare commits
	
		
			33 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					44c68e8e2c | ||
| 
						 | 
					df9ff77e26 | ||
| 
						 | 
					7ae04b0f32 | ||
| 
						 | 
					4ac160313e | ||
| 
						 | 
					8f8dc0540a | ||
| 
						 | 
					b8aaa68473 | ||
| 
						 | 
					8306655433 | ||
| 
						 | 
					ec3a748de8 | ||
| 
						 | 
					23dfbf1f3e | ||
| 
						 | 
					8fdfdbd61a | ||
| 
						 | 
					767927fb92 | ||
| 
						 | 
					7a72ecffcf | ||
| 
						 | 
					e7e2d55c9b | ||
| 
						 | 
					ada52bb828 | ||
| 
						 | 
					86085f5c91 | ||
| 
						 | 
					ad3601c607 | ||
| 
						 | 
					904e6b00ef | ||
| 
						 | 
					4c0f02ba4f | ||
| 
						 | 
					06f551ef71 | ||
| 
						 | 
					ee9239f4ae | ||
| 
						 | 
					cfc1498753 | ||
| 
						 | 
					abf59ba5fe | ||
| 
						 | 
					05a32ee30e | ||
| 
						 | 
					e595fa0a83 | ||
| 
						 | 
					937a1cdbba | ||
| 
						 | 
					de87f41b45 | ||
| 
						 | 
					d6d2dfe47d | ||
| 
						 | 
					c829a40caa | ||
| 
						 | 
					a11a37e710 | ||
| 
						 | 
					72e8e50d77 | ||
| 
						 | 
					8fb1f315bb | ||
| 
						 | 
					4dccb376ec | ||
| 
						 | 
					ec0491e1e3 | 
							
								
								
									
										5
									
								
								.github/workflows/add-to-project.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/workflows/add-to-project.yml
									
									
									
									
										vendored
									
									
								
							@@ -4,6 +4,9 @@ on:
 | 
			
		||||
  issues:
 | 
			
		||||
    types:
 | 
			
		||||
      - opened
 | 
			
		||||
  pull_request_target:
 | 
			
		||||
    types:
 | 
			
		||||
      - opened
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  add-to-project:
 | 
			
		||||
@@ -14,4 +17,4 @@ jobs:
 | 
			
		||||
        with:
 | 
			
		||||
          project-url: "https://github.com/orgs/R2Northstar/projects/3"
 | 
			
		||||
          github-token: "${{ secrets.PROJECT_BOARD_TOKEN }}"
 | 
			
		||||
          
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								.github/workflows/merge-conflict-auto-label.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/merge-conflict-auto-label.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
name: Merge Conflict Auto Label
 | 
			
		||||
on:
 | 
			
		||||
  workflow_dispatch: # Manual run
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - main
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: "10 21 * * *" # Runs at 21:10; time was chosen based on contributor activity and low GitHub Actions cron load.
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  triage:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: mschilde/auto-label-merge-conflicts@master
 | 
			
		||||
        with:
 | 
			
		||||
          CONFLICT_LABEL_NAME: "merge conflicts"
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
          MAX_RETRIES: 5
 | 
			
		||||
          WAIT_MS: 5000
 | 
			
		||||
							
								
								
									
										7
									
								
								.github/workflows/post-to-mastodon.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.github/workflows/post-to-mastodon.yml
									
									
									
									
										vendored
									
									
								
							@@ -9,9 +9,8 @@ jobs:
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Send toot to Mastodon
 | 
			
		||||
        id: mastodon
 | 
			
		||||
        uses: cbrgm/mastodon-github-action@v1
 | 
			
		||||
        uses: cbrgm/mastodon-github-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          message: "We just released Northstar ${{ github.event.release.tag_name }}\n\n${{ github.event.release.html_url }}"
 | 
			
		||||
        env:
 | 
			
		||||
          MASTODON_URL: ${{ secrets.MASTODON_URL }}
 | 
			
		||||
          MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN }}
 | 
			
		||||
          url: ${{ secrets.MASTODON_URL }}
 | 
			
		||||
          access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
name: Build
 | 
			
		||||
name: Release
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    tags:
 | 
			
		||||
@@ -15,34 +15,39 @@ permissions:
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  NORTHSTAR_VERSION: ${{ github.ref_name }}
 | 
			
		||||
  DISCORD_RPC_VERSION: v13
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build-northstar:
 | 
			
		||||
    runs-on: ubuntu-20.04
 | 
			
		||||
    runs-on: ubuntu-22.04
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout release files
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ env.NORTHSTAR_VERSION }}
 | 
			
		||||
          path: northstar
 | 
			
		||||
      - name: Wait for launcher release build to be ready
 | 
			
		||||
        timeout-minutes: 30 # Only wait for 30 minutes. If we take longer, something probably broke
 | 
			
		||||
        run:
 | 
			
		||||
          bash northstar/wait_for_launcher_dl.sh $NORTHSTAR_VERSION
 | 
			
		||||
      - name: Download compiled launcher
 | 
			
		||||
        run:
 | 
			
		||||
          wget "https://github.com/R2Northstar/NorthstarLauncher/releases/download/${{ env.NORTHSTAR_VERSION }}/northstar-launcher.zip"
 | 
			
		||||
      - name: Download DiscordRPC plugin
 | 
			
		||||
        run:
 | 
			
		||||
          wget "https://github.com/R2Northstar/NorthstarDiscordRPC/releases/download/v4/northstar-discord-rpc.zip"
 | 
			
		||||
          wget "https://github.com/R2Northstar/NorthstarDiscordRPC/releases/download/${{ env.DISCORD_RPC_VERSION }}/northstar-discord-rpc.zip"
 | 
			
		||||
      - name: Download compiled stubs
 | 
			
		||||
        run:
 | 
			
		||||
          wget "https://github.com/R2Northstar/NorthstarStubs/releases/download/v1/NorthstarStubs.zip"
 | 
			
		||||
      - name: Checkout release files
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
        with:
 | 
			
		||||
          ref: ${{ env.NORTHSTAR_VERSION }}
 | 
			
		||||
          path: northstar
 | 
			
		||||
      - name: Checkout core mods
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
        with:
 | 
			
		||||
          repository: R2Northstar/NorthstarMods
 | 
			
		||||
          ref: ${{ env.NORTHSTAR_VERSION }}
 | 
			
		||||
          path: northstar-mods
 | 
			
		||||
      - name: Update mod version info
 | 
			
		||||
        run: |
 | 
			
		||||
          export MOD_VERSION=$(echo $NORTHSTAR_VERSION | tr -d 'v')
 | 
			
		||||
          export MOD_VERSION=$(echo $NORTHSTAR_VERSION | tr --delete 'v')
 | 
			
		||||
          cat <<< $(jq ".Version = \"${MOD_VERSION}\"" northstar-mods/Northstar.Client/mod.json) > northstar-mods/Northstar.Client/mod.json
 | 
			
		||||
          cat <<< $(jq ".Version = \"${MOD_VERSION}\"" northstar-mods/Northstar.Custom/mod.json) > northstar-mods/Northstar.Custom/mod.json
 | 
			
		||||
          cat <<< $(jq ".Version = \"${MOD_VERSION}\"" northstar-mods/Northstar.CustomServers/mod.json) > northstar-mods/Northstar.CustomServers/mod.json
 | 
			
		||||
@@ -53,34 +58,34 @@ jobs:
 | 
			
		||||
          git ls-tree -r $NORTHSTAR_VERSION --name-only | xargs -L1 md5sum >> md5sum.txt
 | 
			
		||||
      - name: Make folder structure
 | 
			
		||||
        run: |
 | 
			
		||||
          mv -v northstar/release/* northstar/.
 | 
			
		||||
          rm -d northstar/release
 | 
			
		||||
          mkdir -p northstar/R2Northstar/mods
 | 
			
		||||
          mkdir -p northstar/R2Northstar/plugins
 | 
			
		||||
          mkdir -p northstar/bin/x64_dedi
 | 
			
		||||
          mv --verbose northstar/release/* northstar/.
 | 
			
		||||
          rm --dir northstar/release
 | 
			
		||||
          mkdir --parents northstar/R2Northstar/mods
 | 
			
		||||
          mkdir --parents northstar/R2Northstar/plugins
 | 
			
		||||
          mkdir --parents northstar/bin/x64_dedi
 | 
			
		||||
 | 
			
		||||
          unzip northstar-discord-rpc.zip -d northstar/R2Northstar/plugins
 | 
			
		||||
          
 | 
			
		||||
 | 
			
		||||
          unzip NorthstarStubs.zip -d northstar/bin/x64_dedi
 | 
			
		||||
          unzip northstar-launcher.zip -d northstar
 | 
			
		||||
          rsync -avr --exclude="Northstar.Coop" --exclude=".git*" northstar-mods/. northstar/R2Northstar/mods
 | 
			
		||||
          rsync -avr --exclude="Northstar.Coop" --exclude=".git*" --exclude="*.md" northstar-mods/. northstar/R2Northstar/mods
 | 
			
		||||
      - name: Checkout Navmesh repository
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
        with:
 | 
			
		||||
          repository: R2Northstar/NorthstarNavs
 | 
			
		||||
          ref: 'v2'
 | 
			
		||||
          ref: 'v4'
 | 
			
		||||
          path: northstar-navs
 | 
			
		||||
      - name: Navmeshes setup
 | 
			
		||||
        run: |
 | 
			
		||||
          mkdir -p northstar/R2Northstar/mods/Northstar.CustomServers/mod/maps
 | 
			
		||||
          mv -v northstar-navs/graphs northstar/R2Northstar/mods/Northstar.CustomServers/mod/maps
 | 
			
		||||
          mv -v northstar-navs/navmesh northstar/R2Northstar/mods/Northstar.CustomServers/mod/maps
 | 
			
		||||
          mkdir --parents northstar/R2Northstar/mods/Northstar.CustomServers/mod/maps
 | 
			
		||||
          mv --verbose northstar-navs/graphs northstar/R2Northstar/mods/Northstar.CustomServers/mod/maps
 | 
			
		||||
          mv --verbose northstar-navs/navmesh northstar/R2Northstar/mods/Northstar.CustomServers/mod/maps
 | 
			
		||||
      - name: Cleanup root Northstar repository files
 | 
			
		||||
        working-directory: northstar
 | 
			
		||||
        run: |
 | 
			
		||||
          rm -rf .git .github .gitignore *.md LICENSE thunderstore .ci.env.example
 | 
			
		||||
          rm -rf .git .github .gitignore *.md LICENSE thunderstore .ci.env.example *.sh
 | 
			
		||||
      - name: Upload
 | 
			
		||||
        uses: actions/upload-artifact@v3
 | 
			
		||||
        uses: actions/upload-artifact@v4
 | 
			
		||||
        with:
 | 
			
		||||
          name: Northstar.release.${{ env.NORTHSTAR_VERSION }}
 | 
			
		||||
          path: northstar
 | 
			
		||||
@@ -92,8 +97,11 @@ jobs:
 | 
			
		||||
      - name: Compute SHA-512 checksum
 | 
			
		||||
        run: |
 | 
			
		||||
          sha512sum Northstar.release.${{ env.NORTHSTAR_VERSION }}.zip
 | 
			
		||||
          echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
 | 
			
		||||
          sha512sum Northstar.release.${{ env.NORTHSTAR_VERSION }}.zip >> $GITHUB_STEP_SUMMARY
 | 
			
		||||
          echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
 | 
			
		||||
      - name: Upload zip to release draft
 | 
			
		||||
        uses: softprops/action-gh-release@v1
 | 
			
		||||
        uses: softprops/action-gh-release@v2
 | 
			
		||||
        if: startsWith(github.ref, 'refs/tags/v') && !contains(env.NORTHSTAR_VERSION, '-rc')
 | 
			
		||||
        with:
 | 
			
		||||
          draft: true
 | 
			
		||||
@@ -114,33 +122,33 @@ jobs:
 | 
			
		||||
      TS_NAMESPACE: northstar
 | 
			
		||||
      TS_MOD_NAME: Northstar
 | 
			
		||||
      TS_MOD_DESCRIPTION: Titanfall 2 modding and custom server framework.
 | 
			
		||||
    runs-on: ubuntu-20.04
 | 
			
		||||
    runs-on: ubuntu-22.04
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Setup tcli
 | 
			
		||||
        run: |
 | 
			
		||||
          wget -O tcli.tar.gz https://github.com/thunderstore-io/thunderstore-cli/releases/download/0.1.4/tcli-0.1.4-linux-x64.tar.gz
 | 
			
		||||
          wget --output-document tcli.tar.gz https://github.com/thunderstore-io/thunderstore-cli/releases/download/0.1.4/tcli-0.1.4-linux-x64.tar.gz
 | 
			
		||||
          tar xvf tcli.tar.gz
 | 
			
		||||
          sudo mv -v tcli-0.1.4-linux-x64/tcli /bin
 | 
			
		||||
          sudo mv --verbose tcli-0.1.4-linux-x64/tcli /bin
 | 
			
		||||
 | 
			
		||||
      - name: (DEBUG) Download Northstar package
 | 
			
		||||
        if: ${{ env.ACT }} # Download Northstar package from releases when running locally instead of relying on previous jobs
 | 
			
		||||
        run: |
 | 
			
		||||
          wget -O northstar.zip https://github.com/R2Northstar/Northstar/releases/download/v1.6.3/Northstar.release.v1.6.3.zip
 | 
			
		||||
          wget --output-document northstar.zip https://github.com/R2Northstar/Northstar/releases/download/v1.6.3/Northstar.release.v1.6.3.zip
 | 
			
		||||
          unzip northstar.zip -d northstar
 | 
			
		||||
 | 
			
		||||
      - name: Download Northstar package
 | 
			
		||||
        if: ${{ !env.ACT }} # Download artifacts from previous jobs when running on GitHub's infrastructure
 | 
			
		||||
        uses: actions/download-artifact@v3
 | 
			
		||||
        uses: actions/download-artifact@v4
 | 
			
		||||
        with:
 | 
			
		||||
          name: Northstar.release.${{ env.NORTHSTAR_VERSION }}
 | 
			
		||||
          path: northstar
 | 
			
		||||
 | 
			
		||||
      - name: Make package structure
 | 
			
		||||
        run: |
 | 
			
		||||
          mkdir -p thunderstore/dist/Northstar
 | 
			
		||||
          mv -v northstar/* thunderstore/dist/Northstar
 | 
			
		||||
          wget -O thunderstore/icon.png https://raw.githubusercontent.com/R2Northstar/Northstar/main/thunderstore/icon.png
 | 
			
		||||
          wget -O thunderstore/README.md https://raw.githubusercontent.com/R2Northstar/Northstar/main/thunderstore/README.md
 | 
			
		||||
          mkdir --parents thunderstore/dist/Northstar
 | 
			
		||||
          mv --verbose northstar/* thunderstore/dist/Northstar
 | 
			
		||||
          wget --output-document thunderstore/icon.png https://raw.githubusercontent.com/R2Northstar/Northstar/main/thunderstore/icon.png
 | 
			
		||||
          wget --output-document thunderstore/README.md https://raw.githubusercontent.com/R2Northstar/Northstar/main/thunderstore/README.md
 | 
			
		||||
 | 
			
		||||
      - name: Setup environment variables
 | 
			
		||||
        run: |
 | 
			
		||||
@@ -163,9 +171,9 @@ jobs:
 | 
			
		||||
        run: |
 | 
			
		||||
          tcli init --package-name=$TS_MOD_NAME --package-namespace=$TS_NAMESPACE --package-version $MOD_VERSION
 | 
			
		||||
 | 
			
		||||
          sed -i "s/communities = \[\]/communities = [\"$TS_COMMUNITY\"]/g" thunderstore.toml
 | 
			
		||||
          sed -i "s/Example-Dependency = \"1.0.0\"//g" thunderstore.toml
 | 
			
		||||
          sed -i "s/description = \"Example mod description\"/description = \"$TS_MOD_DESCRIPTION\"/g" thunderstore.toml
 | 
			
		||||
          sed --in-place "s/communities = \[\]/communities = [\"$TS_COMMUNITY\"]/g" thunderstore.toml
 | 
			
		||||
          sed --in-place "s/Example-Dependency = \"1.0.0\"//g" thunderstore.toml
 | 
			
		||||
          sed --in-place "s/description = \"Example mod description\"/description = \"$TS_MOD_DESCRIPTION\"/g" thunderstore.toml
 | 
			
		||||
          cat thunderstore.toml
 | 
			
		||||
 | 
			
		||||
          tcli build
 | 
			
		||||
							
								
								
									
										15
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								README.md
									
									
									
									
									
								
							@@ -3,12 +3,12 @@
 | 
			
		||||
[](https://github.com/R2Northstar/Northstar/releases)
 | 
			
		||||

 | 
			
		||||
[](https://northstar.tf/discord)
 | 
			
		||||
[](https://r2northstar.gitbook.io)
 | 
			
		||||
[](https://northstar.tf/wiki)
 | 
			
		||||
 | 
			
		||||
Northstar is a modding framework client that allows users to host their own Titanfall 2 servers using custom scripts and assets to create custom content, as well as being able to host vanilla content.
 | 
			
		||||
 | 
			
		||||
<p align="center"><strong>
 | 
			
		||||
<a href="https://r2northstar.gitbook.io/r2northstar-wiki/installing-northstar/basic-setup">Installation</a> | <a href="https://r2northstar.gitbook.io/r2northstar-wiki/installing-northstar/troubleshooting">Troubleshooting</a> | <a href="https://r2northstar.gitbook.io/">Wiki</a>
 | 
			
		||||
<a href="https://docs.northstar.tf/Wiki/installing-northstar/basic-setup/">Installation</a> | <a href="https://docs.northstar.tf/Wiki/installing-northstar/troubleshooting/">Troubleshooting</a> | <a href="https://northstar.tf/wiki">Wiki</a>
 | 
			
		||||
</strong></p>
 | 
			
		||||
 | 
			
		||||
## Development
 | 
			
		||||
@@ -22,16 +22,15 @@ Northstar's development is split into 6 repositories:
 | 
			
		||||
1. [NorthstarDiscordRPC](https://github.com/R2Northstar/NorthstarDiscordRPC) (Discord RPC plugin)
 | 
			
		||||
1. [Atlas](https://github.com/R2Northstar/Atlas) (Backend API for server browser, player authentication, and persistence)
 | 
			
		||||
 | 
			
		||||
The documentation is split into three repositories:
 | 
			
		||||
The documentation is split into two repositories:
 | 
			
		||||
1. [NorthstarTF](https://github.com/R2Northstar/NorthstarTF) (Main website)
 | 
			
		||||
1. [NorthstarWiki](https://github.com/R2Northstar/NorthstarWiki) (Wiki covering installation, hosting and configuration of Northstar)
 | 
			
		||||
1. [ModdingDocs](https://github.com/R2Northstar/ModdingDocs) (Guides and tutorials on how to mod using Northstar)
 | 
			
		||||
1. [ModdingDocs](https://github.com/R2Northstar/ModdingDocs) (Wiki covering installation, hosting and configuration of Northstar, as well as guides and tutorials on how to mod using Northstar)
 | 
			
		||||
 | 
			
		||||
## Special Thanks
 | 
			
		||||
 | 
			
		||||
Thanks to everyone that's put up with me and helped out with this project, it's been a fun passion project I've had throughout 2021 so releasing it is pretty cathartic. Specifically: 
 | 
			
		||||
Thanks to everyone that's put up with me and helped out with this project, it's been a fun passion project I've had throughout 2021 so releasing it is pretty cathartic. Specifically:
 | 
			
		||||
 | 
			
		||||
- Thanks to the Icepick developers for making the Icepick, I initially forked it for earlier versions of Northstar and it was a great base to experiment with stuff on before moving to the custom launcher.
 | 
			
		||||
- Thanks to everyone on R5R team for giving me advice on some later parts of development.  
 | 
			
		||||
- Thanks to everyone in the testing server for putting up with me and helping find bugs.  
 | 
			
		||||
- Thanks to everyone on R5R team for giving me advice on some later parts of development.
 | 
			
		||||
- Thanks to everyone in the testing server for putting up with me and helping find bugs.
 | 
			
		||||
- Thanks to everyone else that's helped, gave advice, all that.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								wait_for_launcher_dl.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								wait_for_launcher_dl.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# Check if contains command line arg
 | 
			
		||||
if [ -z "$1" ]; then
 | 
			
		||||
    echo "Missing command-line argument."
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
url="https://github.com/R2Northstar/NorthstarLauncher/releases/download/$1/northstar-launcher.zip"
 | 
			
		||||
wait_time_seconds=60
 | 
			
		||||
 | 
			
		||||
# Loop until the response code changes
 | 
			
		||||
while true; do
 | 
			
		||||
    response=$(curl --silent --output /dev/null --write-out "%{http_code}" $url)
 | 
			
		||||
    if [ $response -eq 404 ]; then
 | 
			
		||||
        echo "Response is 404. Retrying in $wait_time_seconds seconds."
 | 
			
		||||
        sleep $wait_time_seconds
 | 
			
		||||
    else
 | 
			
		||||
        echo "Site is accessible with response code $response."
 | 
			
		||||
        break
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# 10 second sleep just in case we hit some weird race condition
 | 
			
		||||
# where files are still being uploaded but release is done
 | 
			
		||||
sleep 10
 | 
			
		||||
		Reference in New Issue
	
	Block a user