Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
434bdab
polymod preperations
CharGoldenYT Sep 6, 2025
3baefd3
haha the credits state is so out of date
CharGoldenYT Sep 7, 2025
1ec7708
updated credits...
VideoBotYT Sep 7, 2025
a70643a
that's a currently invalid handle! good job me!
CharGoldenYT Sep 7, 2025
146ad91
Did you know, a lot of defines are now useless
CharGoldenYT Sep 8, 2025
77e2804
Move logging classes to source/sys/
CharGoldenYT Sep 9, 2025
12ccc1e
uh shit uh import wasnt updated
CharGoldenYT Sep 10, 2025
e9afbe3
idk if this works lmao, but i don't wanna lose progress so
CharGoldenYT Sep 10, 2025
f226288
Alright it's 4 am bruh, and this works enough so far
CharGoldenYT Sep 10, 2025
3009fcb
Think the workflow might work now.
CharGoldenYT Sep 10, 2025
6bc6ad7
better version lmao
VideoBotYT Sep 10, 2025
298a87a
better version
VideoBotYT Sep 10, 2025
5337343
idk why this happened
VideoBotYT Sep 10, 2025
ed235f2
compile shits.. again
CharGoldenYT Sep 10, 2025
59e99d3
uhm yeah
VideoBotYT Sep 11, 2025
403e37d
Merge branch 'uedev-polymod' of https://github.com/Team-UniverseEngin…
VideoBotYT Sep 11, 2025
f4f97dc
buh
CharGoldenYT Sep 11, 2025
4a300b2
CoolErrorSubstate
CharGoldenYT Sep 18, 2025
32f3cfc
stop adding .DS_STORE
CharGoldenYT Sep 18, 2025
96fe8a8
Add customizable delay to the substate fade out
CharGoldenYT Sep 19, 2025
43697c9
CoolUtil.openSubState
CharGoldenYT Sep 19, 2025
2b9bf1c
Merge pull request #14 from Team-UniverseEngine/pr-branch
CharGoldenYT Sep 22, 2025
bfc28e1
update credits icon
CharGoldenYT Sep 22, 2025
14d7d6e
went in a different direction
CharGoldenYT Sep 22, 2025
a9d5857
fix debug text visibilty
CharGoldenYT Sep 22, 2025
15b25d1
update comment
CharGoldenYT Sep 22, 2025
ee73f3b
fix dave's icon
CharGoldenYT Sep 22, 2025
5b407f3
also FORMER developer now
CharGoldenYT Sep 22, 2025
1ef0ac4
still kind of a stub lmao
CharGoldenYT Sep 22, 2025
ca14891
fix the STUPID HEALTH ICONS.
CharGoldenYT Sep 22, 2025
63d2e9e
remove test icon of Char
CharGoldenYT Sep 22, 2025
d969100
Making a mod switcher state
CharGoldenYT Sep 22, 2025
c62db68
bare bones mod switcher FINALLY
CharGoldenYT Sep 23, 2025
58b6d62
forgot a line lmao
CharGoldenYT Sep 23, 2025
fab3e73
put that reference back
CharGoldenYT Sep 23, 2025
71549b4
we TOTALLY need watermark capability :3c
CharGoldenYT Sep 23, 2025
85cc14e
forgot to add a clearing function
CharGoldenYT Sep 23, 2025
fbd26a9
Changed polymod stuff
VideoBotYT Sep 23, 2025
004a495
stuffs
CharGoldenYT Sep 23, 2025
72fe3a8
Mod Template Maker
CharGoldenYT Sep 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 38 additions & 37 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ jobs:
haxelib list
- name: Compile Linux
run: haxelib run lime build Project.xml linux
- name: Publish Artifact
uses: actions/upload-artifact@v4
with:
name: Universe-Linux
path: 'export/release/linux/bin'
# - name: Publish Artifact
# uses: actions/upload-artifact@v4
# with:
# name: Universe-Linux
# path: 'export/release/linux/bin'
Windows-Build:
runs-on: windows-latest

Expand All @@ -52,11 +52,11 @@ jobs:
shell: cmd
- name: Compile Windows
run: haxelib run lime build windows
- name: Publish Artifact
uses: actions/upload-artifact@v4
with:
name: Universe-Windows
path: export/release/windows/bin
# - name: Publish Artifact
# uses: actions/upload-artifact@v4
# with:
# name: Universe-Windows
# path: export/release/windows/bin
MacOS-INTEL-Build:
runs-on: macos-latest

Expand All @@ -74,32 +74,33 @@ jobs:
haxelib list
- name: Compile MacOS ARM
run: haxelib run lime build mac -64
- name: Publish Artifact
uses: actions/upload-artifact@v4
with:
name: Universe-MacOS-INTEL
path: export/release/macos/bin
# MacOS On ARM (M1 to M4 chips) Will be commented until we figure it out.

# MacOS-ARM-Build:
# runs-on: macos-latest
# - name: Publish Artifact
# uses: actions/upload-artifact@v4
# with:
# name: Universe-MacOS-INTEL
# path: export/release/macos/bin
# MacOS On ARM (M1 to M4 chips) Was originally broken, but found out it was lime.
MacOS-ARM-Build:
runs-on: macos-latest

# steps:
# - uses: actions/checkout@v4.1.7
steps:
- uses: actions/checkout@v4.1.7

# - uses: krdlab/setup-haxe@master
# with:
# haxe-version: 4.3.4
# - name: Install Haxelib
# run: |
# haxelib setup ~/haxelib
# chmod +x ./compile/workflow/unix.sh
# sh ./compile/workflow/unix.sh
# haxelib list
# - name: Compile MacOS ARM
# run: haxelib run lime build mac -arm64
# - name: Publish Artifact
# uses: actions/upload-artifact@v4
# with:
# name: Universe-MacOS-ARM
# path: export/release/macos/bin
- uses: krdlab/setup-haxe@master
with:
haxe-version: 4.3.4
- name: Install Haxelib
run: |
haxelib setup ~/haxelib
chmod +x ./compile/workflow/unix.sh
sh ./compile/workflow/unix.sh
haxelib list
haxelib install lime 8.2.2 && haxelib set lime 8.2.2
- name: Compile MacOS ARM
run: haxelib run lime build mac -arm64
# - name: Publish Artifact
# uses: actions/upload-artifact@v4
# with:
# name: Universe-MacOS-ARM
# path: export/release/macos/bin
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ export/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/extensions.json
*.DS_STORE
26 changes: 15 additions & 11 deletions Project.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@
<project>
<!-- _________________________ Application Settings _________________________ -->

<app title="Friday Night Funkin': Universe Engine" file="UniverseEngine" packageName="com.univere.engine" package="com.universe.engine" main="Main" version="0.2.8" company="Universe" />
<section unless="mac">
<app title="Friday Night Funkin': Universe Engine" file="UniverseEngine" packageName="com.univere.engine" package="com.universe.engine" main="Main" version="0.2.8" company="Universe" />
</section>
<section if="mac"> <!-- Version the final file for mac (Revert to just the top when release build)-->
<app title="Friday Night Funkin': Universe Engine" file="UniverseEngine_1-0-0B2" packageName="com.univere.engine" package="com.universe.engine" main="Main" version="0.2.8" company="Universe" />
</section>

<!--Switch Export with Unique ApplicationID and Icon-->
<set name="APP_ID" value="0x0100f6c013bbc000" />
Expand Down Expand Up @@ -45,23 +50,17 @@

<!-- PSYCH ENGINE CUSTOMIZATION -->
<define name="MODS_ALLOWED" if="desktop" />
<define name="MOD_SUPPORT" if="MODS_ALLOWED" /> <!-- TODO: Rename all instances to MODS_ALLOWED-->
<define name="LUA_ALLOWED" if="desktop" />
<define name="ACHIEVEMENTS_ALLOWED" />
<define name="VIDEOS_ALLOWED" if="web || desktop" unless="32bits"/>
<define name="PSYCH_WATERMARKS"/> <!-- DELETE THIS TO REMOVE WATERMARKS/DEV NAMES ON TITLE SCREEN -->
<define name="TITLE_SCREEN_EASTER_EGG" if="officialBuild"/> <!-- DELETE THE if="officialBuild" for enabling this on an unofficial build -->
<define name="CRASH_HANDLER" if="desktop release" />
<define name="SOFTCODED_STATES" if="MODS_ALLOWED"/>
<define name="GLOBAL_SCRIPT" if="MODS_ALLOWED"/>

<define name="DEV"/>

<define name="PSYCH" />
<define name="PSYCHVERSION" value="0.6.3"/>
<define name="hscript"/>

<define name="GLOBAL_SCRIPT"/>

<assets path="assets/preload" rename="assets" exclude="*.ogg" if="web"/>
<assets path="assets/preload" rename="assets" exclude="*.mp3" unless="web"/>
Expand Down Expand Up @@ -135,6 +134,7 @@
NOT USING A DIRECT THING TO THE ASSET!!!
-->
<assets path="assets/fonts" embed='true'/>

<!-- _______________________________ Libraries ______________________________ -->

<haxelib name="flixel" />
Expand All @@ -143,9 +143,7 @@
<!--In case you want to use the addons package-->
<!-- god fucking damn it i hate github actions and haxeflixel with their shit 3:< -->
<haxelib name="flixel-addons" />
<haxelib name="hscript" />
<haxelib name="hscript-improved"/>
<haxedef name="hscriptPos" />
<haxelib name="polymod" if="MODS_ALLOWED"/> <!-- Required for the custom mod loader.-->

<!--In case you want to use the ui package-->
<haxelib name="flixel-ui" version="2.5.0"/>
Expand All @@ -157,12 +155,18 @@
<haxelib name="hxdiscord_rpc" version="1.3.0"/>
<!-- <haxelib name="hxcpp-debug-server" if="desktop"/> -->

<!-- <haxelib name="markdown" /> -->
<!-- <haxelib name="markdown" /> --> <!-- WHAT THE FUCK IS MARKDOWN DOING HERE?! -->
<!-- <haxelib name="HtmlParser" /> -->

<!--In case you want to use nape with flixel-->
<!--<haxelib name="nape-haxe4" />-->

<!-- _________________________ Polymod Configuration ________________________ -->

<haxedef name="POLYMOD_ROOT_PATH" value="game/"/> <!-- This is used to tell polymod where scripts are-->
<haxedef name="POLYMOD_MOD_METADATA_FILE" value="meta.json" />
<haxedef name="POLYMOD_MOD_ICON_FILE" value="icon.png" />

<!-- ______________________________ Haxedefines _____________________________ -->

<!--Enable the Flixel core recording system-->
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
<table align="center">
<tr>
<th>Contributor Names</th>
<th> <img src="https://daveberry.netlify.app/daveberry/dave.png" width="25"> Daveberry </th>
<th> <img src="https://daveberry.netlify.app/assets/main/dave.png" width="25"> Daveberry </th>
<th> <img src="https://github.com/VideoBotYT/Universe-Engine/blob/main/assets/preload/images/credits/videobot.png?raw=true" width="25"> VideoBot </th>
<th> <img src="https://github.com/VideoBotYT/Universe-Engine/blob/main/assets/preload/images/credits/baranmuzu.png?raw=true" width="25"> BaranMuzu </th>
<th> <img src="https://github.com/CharGoldenYT/CharGoldenYT/blob/main/cha.png?raw=true" width="25"> CharGoldenYT </th>
Expand All @@ -74,7 +74,7 @@
<th>Role</th>
<th> Former Developer </th>
<th> Main Developer </th>
<th> Invited Developer </th>
<th> Former Developer </th>
<th> Invited Developer </th>
</tr>

Expand Down
Binary file added assets/preload/images/.DS_Store
Binary file not shown.
Binary file modified assets/preload/images/credits/char.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/preload/uescript/.DS_Store
Binary file not shown.
Binary file added assets/shared/.DS_Store
Binary file not shown.
Binary file added assets/shared/images/.DS_Store
Binary file not shown.
Binary file added compile/.DS_Store
Binary file not shown.
2 changes: 2 additions & 0 deletions compile/Test_Build_Mac.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
lime test mac -DTEST_BUILD
read -n1 -r -p "Press any key to continue..." key
14 changes: 9 additions & 5 deletions compile/workflow/unix.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
haxelib install lime 8.1.3 && haxelib set lime 8.1.3
haxelib install openfl 9.2.2 && haxelib set openfl 9.2.2
haxelib install flixel 5.6.2 && haxelib set flixel 5.6.2
haxelib install lime 8.2.2 && haxelib set lime 8.2.2
haxelib install openfl 9.4.1 && haxelib set openfl 9.4.1
haxelib install flixel 5.5.0 && haxelib set flixel 5.5.0
haxelib install flixel-addons 3.2.0 && haxelib set flixel-addons 3.2.0
haxelib install flixel-ui 2.5.0 && haxelib set flixel-ui 2.5.0
haxelib install hxvlc 1.9.3 && haxelib set hxvlc 1.9.3
haxelib install polymod
haxelib git jsonpatch https://github.com/EliteMasterEric/jsonpatch f9b83215acd586dc28754b4ae7f69d4c06c3b4d3
haxelib git jsonpath https://github.com/EliteMasterEric/jsonpath 7a24193717b36393458c15c0435bb7c4470ecdda
haxelib git thx.core https://github.com/fponticelli/thx.core 2bf2b992e06159510f595554e6b952e47922f128
haxelib git thx.semver https://github.com/fponticelli/thx.semver bdb191fe7cf745c02a980749906dbf22719e200b

haxelib run lime setup flixel
haxelib run lime setup
Expand All @@ -13,5 +18,4 @@ haxelib install hxcpp-debug-server
haxelib install hxdiscord_rpc

haxelib git hxcpp https://github.com/moxie-coder/hxcpp-compiled
haxelib git linc_luajit https://github.com/superpowers04/linc_luajit
haxelib git hscript-improved https://github.com/CodenameCrew/hscript-improved
haxelib git linc_luajit https://github.com/superpowers04/linc_luajit
14 changes: 9 additions & 5 deletions compile/workflow/windows.bat
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
haxelib install lime 8.1.3 && haxelib set lime 8.1.3
haxelib install openfl 9.2.2 && haxelib set openfl 9.2.2
haxelib install flixel 5.6.2 && haxelib set flixel 5.6.2
haxelib install lime 8.2.2 && haxelib set lime 8.2.2
haxelib install openfl 9.4.1 && haxelib set openfl 9.4.1
haxelib install flixel 5.5.0 && haxelib set flixel 5.5.0
haxelib install flixel-addons 3.2.0 && haxelib set flixel-addons 3.2.0
haxelib install flixel-ui 2.5.0 && haxelib set flixel-ui 2.5.0
haxelib install hxvlc 1.9.3 && haxelib set hxvlc 1.9.3
haxelib install polymod
haxelib git jsonpatch https://github.com/EliteMasterEric/jsonpatch f9b83215acd586dc28754b4ae7f69d4c06c3b4d3
haxelib git jsonpath https://github.com/EliteMasterEric/jsonpath 7a24193717b36393458c15c0435bb7c4470ecdda
haxelib git thx.core https://github.com/fponticelli/thx.core 2bf2b992e06159510f595554e6b952e47922f128
haxelib git thx.semver https://github.com/fponticelli/thx.semver bdb191fe7cf745c02a980749906dbf22719e200b

haxelib run lime setup flixel
haxelib run lime setup
Expand All @@ -13,5 +18,4 @@ haxelib install hxcpp-debug-server
haxelib install hxdiscord_rpc

haxelib git hxcpp https://github.com/moxie-coder/hxcpp-compiled
haxelib git linc_luajit https://github.com/superpowers04/linc_luajit
haxelib git hscript-improved https://github.com/CodenameCrew/hscript-improved
haxelib git linc_luajit https://github.com/superpowers04/linc_luajit
Binary file added new_example_mods/.DS_Store
Binary file not shown.
Binary file added new_example_mods/test_folder/.DS_Store
Binary file not shown.
Binary file added new_example_mods/test_folder/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions new_example_mods/test_folder/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"title":"Test Mod",
"description":"This mod is for testing the polymod mod loader framework",
"api_version":"1.0.0",
"mod_version":"1.0.0"
}
3 changes: 0 additions & 3 deletions new_example_mods/test_folder/yuh.json

This file was deleted.

14 changes: 7 additions & 7 deletions source/ClientPrefs.hx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import flixel.util.FlxColor;

class SaveVariables
{
public var lastLoadedMod:String = null;
public var lastLoadedMod:Array<String> = [];
public var downScroll:Bool = false;
public var middleScroll:Bool = false;
public var opponentStrums:Bool = true;
Expand Down Expand Up @@ -263,12 +263,12 @@ class ClientPrefs
{
PlayerSettings.player1.controls.setKeyboardScheme(KeyboardScheme.Solo);

TitleState.muteKeys = copyKey(keyBinds.get('volume_mute'));
TitleState.volumeDownKeys = copyKey(keyBinds.get('volume_down'));
TitleState.volumeUpKeys = copyKey(keyBinds.get('volume_up'));
FlxG.sound.muteKeys = TitleState.muteKeys;
FlxG.sound.volumeDownKeys = TitleState.volumeDownKeys;
FlxG.sound.volumeUpKeys = TitleState.volumeUpKeys;
modding.LoadState.muteKeys = copyKey(keyBinds.get('volume_mute'));
modding.LoadState.volumeDownKeys = copyKey(keyBinds.get('volume_down'));
modding.LoadState.volumeUpKeys = copyKey(keyBinds.get('volume_up'));
FlxG.sound.muteKeys = modding.LoadState.muteKeys;
FlxG.sound.volumeDownKeys = modding.LoadState.volumeDownKeys;
FlxG.sound.volumeUpKeys = modding.LoadState.volumeUpKeys;
}

public static function copyKey(arrayToCopy:Array<FlxKey>):Array<FlxKey>
Expand Down
83 changes: 64 additions & 19 deletions source/CoolUtil.hx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package;

import sys.Watermark;
import haxe.PosInfos;
import flixel.FlxG;
import openfl.utils.Assets;
import lime.utils.Assets as LimeAssets;
Expand Down Expand Up @@ -191,30 +193,73 @@ class CoolUtil
return maxKey;
}

public static function coolError(message:Null<String> = null, title:Null<String> = null):Void
static function openSubState(s:flixel.FlxSubState)
{
#if !linux
lime.app.Application.current.window.alert(message, title);
FlxG.state.openSubState(s);
}

public static function coolError(message:String = "", title:String = "", ?backer:FlxSprite = null, fadeDelay:Int = 2, ?infos:PosInfos):Void
{
#if CLASSIC_ERROR
#if !linux
lime.app.Application.current.window.alert(message, title);
#else
Logs.traceNew(title + " - " + message, ERROR);

var text:FlxText = new FlxText(8, 0, 1280, title + " - " + message, 24);
text.color = FlxColor.RED;
text.borderSize = 1.5;
text.borderColor = FlxColor.BLACK;
text.scrollFactor.set();
text.cameras = [FlxG.cameras.list[FlxG.cameras.list.length - 1]];

FlxG.state.add(text);

FlxTween.tween(text, {alpha: 0, y: 8}, 5, {
onComplete: function(_)
{
FlxG.state.remove(text);
text.destroy();
}
});
#end
#else
trace(title + " - " + message, ERROR);
openSubState(new CoolErrorSubstate(message, title, backer, fadeDelay, infos));
#end
}

var text:FlxText = new FlxText(8, 0, 1280, title + " - " + message, 24);
text.color = FlxColor.RED;
text.borderSize = 1.5;
text.borderColor = FlxColor.BLACK;
text.scrollFactor.set();
text.cameras = [FlxG.cameras.list[FlxG.cameras.list.length - 1]];
static var watermarks:Array<Watermark> = [];
public static function spawnWatermark(text:String, color:Int = 0xFFFFFF, size:Int = 100)
{
var watermark:sys.Watermark = new sys.Watermark(text, color, size);
watermark.screenCenter();
Main.instance.addChild(watermark);
watermarks.push(watermark);
}

public static function removeWatermark(watermark:Watermark)
{
try
{
Main.instance.removeChild(watermark);
watermarks.remove(watermark);
}
catch(e:Dynamic) {}
}

FlxG.state.add(text);
public static function clearWatermarks()
{
for (watermark in watermarks)
{
Main.instance.removeChild(watermark);
watermarks.remove(watermark);
}
}

FlxTween.tween(text, {alpha: 0, y: 8}, 5, {
onComplete: function(_)
{
FlxG.state.remove(text);
text.destroy();
}
});
#end
public static function addToCurrentState(o:FlxBasic, topCam:Bool = true):FlxBasic
{
if (topCam) o.camera = FlxG.cameras.list[FlxG.cameras.list.length - 1];
return FlxG.state.add(o);
}

public static function numberArray(max:Int, ?min = 0):Array<Int>
Expand Down
Loading
Loading