{"id":25940714,"url":"https://github.com/2003scape/rscsundae","last_synced_at":"2025-03-04T05:18:37.341Z","repository":{"id":253915979,"uuid":"844920498","full_name":"2003scape/rscsundae","owner":"2003scape","description":"🍨 RSC Sundae is a simple, single-threaded RS Classic server emulator written in C99.","archived":false,"fork":false,"pushed_at":"2024-09-09T00:23:24.000Z","size":1345,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-09-09T22:13:42.991Z","etag":null,"topics":["runescape"],"latest_commit_sha":null,"homepage":"https://git.sr.ht/~stormy/rscsundae","language":"Lua","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/2003scape.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-20T08:20:53.000Z","updated_at":"2024-09-09T00:23:26.000Z","dependencies_parsed_at":"2024-08-24T22:37:11.010Z","dependency_job_id":"3977dc50-4f19-4e4b-acc8-3cc2ec868206","html_url":"https://github.com/2003scape/rscsundae","commit_stats":null,"previous_names":["2003scape/rscsundae"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2003scape%2Frscsundae","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2003scape%2Frscsundae/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2003scape%2Frscsundae/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2003scape%2Frscsundae/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2003scape","download_url":"https://codeload.github.com/2003scape/rscsundae/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241787663,"owners_count":20020135,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["runescape"],"created_at":"2025-03-04T05:18:36.809Z","updated_at":"2025-03-04T05:18:37.329Z","avatar_url":"https://github.com/2003scape.png","language":"Lua","readme":"RSC Sundae 🍨\n==========\n\nhttps://git.sr.ht/~stormy/rscsundae\n\nRSC Sundae is a simple, single-threaded RS Classic server emulator\nwritten in C99.  It is based on clean-room reverse engineering and\ncontains no copyrighted source code.  For content scripting, it\nfeatures an implementation of the original RuneScript API in Lua\nbased on public documents.\n\nIt was inspired by the RSC-C client's lack of a native server.\nSince RSC-C runs on old and low-power mobile devices, RSC Sundae\ntargets similar devices.\n\nRSC Sundae accurately replicates all RS Classic content from the final\nF2P-only version of the game (10th December 2001) - lots of preserved\ndata exists for this revision.  This is accomplished using the original\ngame's unmodified free data files.  By using the same API and data\nsources as the original game, the hope is that it is more difficult to\nimplement content inaccurately.\n\nFor clients, RSC Sundae supports the 110 protocol (the original\nJava mudclient110 from December 2001), and the 204 protocol\n(the final version of RSC before \"Retro Revival\" in 2009, used\nby RSC-C, and STS).\n\nRSC Sundae will never support:\n\n* Multiple threads\n* Protocol versions beyond 204\n* Protocol versions with the \"spook cipher\"\n* Custom private server protocols or data formats\n* Integration with proprietary services like Discord\n\nBuilding\n--------\n\nRSC Sundae is developed on NetBSD. I occasionally test it on\nMac OS X 10.4 and Alpine Linux. If I break something on another\nUNIX-like platform, please send a patch.\n\nFor Windows, instead refer to `platform/win32/README.md`.\n\nDependencies:\n\n* BZip2 (for decompressing Jagex Archives to load the original game data)\n* Lua 5.4 (for running content scripts)\n* libev (for the event loop; optional - mostly for macOS and Windows)\n* inih (for parsing the configuration file)\n* libcrypto from OpenSSL (for RSA decryption, and random number generation on some systems)\n* SQLite3 (for player save file persistence)\n* Argon2 (for secure password storage)\n\nOn Debian Linux and derivatives, install the following:\n\n\tbuild-essential pkgconf libbz2-dev liblua5.4-dev libinih-dev libssl-dev libsqlite3-dev libargon2-dev\n\nOn Alpine Linux, install the following:\n\n\tbuild-base pkgconf bzip2-dev lua5.4-dev inih-dev openssl-dev sqlite-dev argon2-dev\n\nRun `./configure \u0026\u0026 make -j2` to build the server.\n\nContributing\n------------\n\nRead `doc/style.md` first.\n\nUse `git format-patch`. You can email `stormy@mailfence.com`.\n\nFuzzing \u0026 profiling\n-------------------\n\nSundae is wired up for performance profiling with gperftools and fuzzing\nwith AFL.\n\nFor profiling, configure with:\n\n\tCFLAGS=\"-DPROFILE\" LDFLAGS=\"-lprofiler\" ./configure\n\nFor fuzzing, configure with:\n\n\tCC=afl-gcc \\\n\tCFLAGS=\"-DFUZZ -D_FORTIFY_SOURCE=2 -fstack-protector-all -fsanitize=undefined\" \\\n\tLDFLAGS=\"-fsanitize=undefined\" ./configure\n\nCredits\n-------\n\n* Stormy wrote the bulk of the engine and most of the content.\n* Mister Hat (frogdoubler) contributed player persistence support via SQLite,\n  the Dragon Slayer quest, Vampire Slayer, Prince Ali rescue, and\n  Ernest the Chicken.\n* Zachary Penn (Hikilaka) contributed many enhancements to the scripting API,\n  teleportation spells, mixing dyes and capes, and player variables support.\n* Pazaz served as an influence with their 2004scape project, listened to\n  a lot of my theorizing, and helped answer obscure RS questions.\n* Protosstribe got me interested in reverse engineering old clients.\n* Members of the RSC community (especially RSC 2001, Logg, 1e Luis)\n  recorded many packet captures, without which a lot of information\n  used to write this code would be lost.\n\nResources\n---------\n\n* https://github.com/2003scape/rsc-c\n* https://web.archive.org/web/20011122124112/http://www.jagex.com/manual/index.html\n* https://web.archive.org/web/20080907105147/http://gowerarchive.googlepages.com/documents#Runescript\n* https://classic.runescape.wiki/w/User:Stormykins/135_Protocol\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2003scape%2Frscsundae","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2003scape%2Frscsundae","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2003scape%2Frscsundae/lists"}