Skip to content

add usermaps support - #701

Merged
mjkzy merged 3 commits into
auroramod:developfrom
Divity:fastfile-lua
Oct 5, 2026
Merged

mjkzy merged 3 commits into
auroramod:developfrom
Divity:fastfile-lua

Conversation

@Divity

@Divity Divity commented Oct 2, 2026

Copy link
Copy Markdown
Contributor
  • load usermaps// fastfiles, pak and sabl/sabs files
  • parse usermaps//.arena into the map list, cp_ maps under CP
  • load _art.ff at boot for map select images and posters
  • group map select into stock and custom sections
  • set CP frontend posters for usermaps
  • hash, compare and download usermap files when joining a party
  • load custom_scripts/frontend/ scripts in the frontend

Divity added 2 commits October 2, 2026 15:01
- load usermaps/<map>/ fastfiles, pak and sabl/sabs files
- parse usermaps/<map>/<map>.arena into the map list, cp_ maps under CP
- load <map>_art.ff at boot for map select images and posters
- group map select into stock and custom sections
- set CP frontend posters for usermaps
- hash, compare and download usermap files when joining a party
- load custom_scripts/frontend/ scripts in the frontend
- serve usermap files by their own name so map preloads find them
- grow the CP map list with the number of installed usermaps

@mjkzy mjkzy left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just a few changes, looks fine otherwise


watch_players()
{
for (;;)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make sure we are ending this thread with level endon game_ended


usermap_poster_watcher()
{
self endon( "disconnect" );

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^ same as other func

return type(name) == "string" and io.fileexists("usermaps/" .. name .. "/" .. name .. ".ff")
end

local GetPlayerDataEx = Engine.GetPlayerDataEx

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit pick: maybe prefer adding _og/_stub suffix for readability

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

local GetPlayerDataEx = Engine.GetPlayerDataEx
Engine.GetPlayerDataEx = function(...)
for _, arg in ipairs({...}) do
if is_usermap(arg) then

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we do this? are usermaps causing weird errors with player data? this feels hacky

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry it was just overdone, only the leaderboard data needs 0d, just because custom maps have no leaderbaord and ican cause lua errors to throw, will correct shortly

@mjkzy
mjkzy merged commit ec1727f into auroramod:develop Oct 5, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants