Releases: Ayrton09/AstraSkins
Releases · Ayrton09/AstraSkins
Release list
v1.2.0
Changes
- Module switches (#17). Every module has its own section in the config with
EnabledandPermission:Weapons,Knives,Gloves,Agents,MusicKits,Stickers,Keychains. A module that is off, or whose flag the player does not hold, disappears from the menu and the search, its commands answer that it is unavailable, and saved selections stop applying (they stay in the database and come back when the module does). A server that only wants charms can now run only charms. Requested by @strenx22. - Configurable commands (#17). The
Commandssection of the config lists the names of every chat command, with any number of aliases each ("Charms": ["css_charms", "kch"]answers to!charmsand!kch). Names get thecss_prefix when it is missing, an empty list leaves that command unregistered, and the same name on two commands is rejected at startup. Usage messages show the configured name. - Default rows in the menu (#17). Every list starts with a Default entry that removes the selection and puts the stock item back right away: the stock finish of a gun or knife, the default knife, the default gloves, the default agent (back on the next spawn). The row is marked when nothing is selected.
- Name tags and StatTrak on the default skin (#17).
!nametagand!stattrakno longer need a selected skin: they work on the stock finish of any gun and on the default knife.!seedand!wearstill need a skin, since the stock finish has no pattern or wear to change.
Install / upgrade
- Same requirements: CounterStrikeSharp 1.0.369+ and
FollowCS2ServerGuidelines: falseinconfigs/core.json. - Upgrading from 1.1.x: replace the plugin folder and the
langfiles. Existing config files keep working; the new sections take their defaults (everything on, default command names) until you add them. No data or database changes.
v1.1.2
Changes
- SQLite mode loads on older Linux hosts (#16). The SQLite library that came with the NuGet package needs glibc 2.34, so on host images such as Debian 11 or Ubuntu 20.04 the plugin failed to load with
GLIBC_2.33 not found. The release zip now ships a SQLite library (3.53.4, same options) built against glibc 2.28, older than what CS2 itself needs, so it loads on any host that can run the server. Windows and MySQL setups are unchanged. Reported by @Rebellsko.
Install / upgrade
- Same requirements: CounterStrikeSharp 1.0.369+ and
FollowCS2ServerGuidelines: falseinconfigs/core.json. - Upgrading from 1.1.1: replace the
runtimes/linux-x64/native/libe_sqlite3.sofile (or the whole plugin folder). No config, data, language or database changes.
v1.1.1
Changes
- Stickers now show in first person on guns with a skin (#15). The client keeps one first-person finish per paint kit, seed and wear for the whole game session and does not rebuild it when stickers change, so a sticker added to a gun whose skin was already in hand only showed on the dropped gun. Every sticker change now steps that gun's wear by 0.006, cycling within 0.06, which is invisible on the finish but makes the client build it again with the current stickers. The step is stored with the profile, so it survives reconnects and restarts; guns that never had stickers keep their exact wear. Reported by @sunrisecz.
Install / upgrade
- Same requirements: CounterStrikeSharp 1.0.369+ and
FollowCS2ServerGuidelines: falseinconfigs/core.json. - Upgrading from 1.1.0: replace
AstraSkins.dll. No config, data, language or database changes; the step is stored as a row in the existing table.
v1.1.0
Changes
- Stickers and charms. Every gun takes up to five stickers and one charm, on top of its skin or on the stock finish. The main menu has new Stickers and Charms entries that start with the guns in hand and continue with the whole catalog by category;
!stickersand!charms(or!keychains) jump straight to the held gun. Stickers are grouped by event, newest first, and then by capsule; charms by collection. With 11,000 stickers the search is the fast way in:!stickers <text>lists the matches for the held gun and asks for the slot,!charms <text>applies directly. Every slot row shows what it carries and offers a remove entry. Stickers use the game's stock placement, size and wear; there is no scraping or moving. Requested by @strenx22. - Their own switches and flags. New
StickersandKeychainssections in the config, each withEnabledandPermission, separate from the customization commands. Every entry indata/stickers.jsonanddata/keychains.jsonaccepts the usualpermissionfield, and the check runs on the apply side too. Deleting a data file hides its menu entry. !wsreset stickersand!wsreset charms, also forcss_wsresetplayer;!wsreset weaponsclears them together with the skins.- The data generator produces the two new files, with Chinese names, from the same upstream lists as the rest.
Install / upgrade
- Same requirements: CounterStrikeSharp 1.0.369+ and
FollowCS2ServerGuidelines: falseinconfigs/core.json. - Upgrading from 1.0.15: replace the whole
plugins/AstraSkinsfolder (newdata/stickers.jsonanddata/keychains.json, updatedlang/*.json). The config gets two optional sections; without them stickers and charms are on for everyone. No database changes.
v1.0.15
Changes
- Leftover round start music after a map change (#14). The client keeps music alive across map loads, and the round start track loops until the player first moves, so a player who never moved carried that loop into the next map, where nothing replaced it until the first team intro. Players who were in when the map ended now get their music stopped the first time they join a team on the next map, once the team select menu has closed. The old track is still heard during the load and on the team select screen, and the first round start track after joining can be cut short; that part is the client's own behaviour. Fresh connections are never touched. Reported and retested by @xiaoyueyoqwq.
- No more "Couldn't resolve offset" lines in the server console. Gloves and team preview items now flag each networked field they write instead of the whole item structure.
- StatTrak counts the weapon that actually got the kill. A grenade or C4 kill no longer credits the weapon in hand, and a kill that lands while the profile is still loading from the database no longer overwrites the stored counter.
- Weapon swaps are safer. When a skin, seed, wear, StatTrak or reset replaces a weapon, the old one is only removed once the new one exists, the settle step no longer refunds shots fired right after the swap, and resets walk a snapshot of the inventory.
- Database outages are visible and cheap. A failed profile read is logged and retried after 10 seconds instead of being retried every tick in silence.
- Data files are more forgiving. A
nullentry or anullskins list is skipped with a warning instead of rejecting the whole catalog; duplicate knife and glove ids are skipped; a category with an empty name is dropped before weapons are assigned to it. - Agents added by
css_wsreloadwait for the next map. Their models are not precached on the running map, so they are skipped with a warning until the map changes instead of being set on a pawn. css_wsreloadrefuses to run when the plugin failed to initialize; the menu closes when a player takes over a bot;!wssearch splits on any whitespace, including the ideographic space from Chinese keyboards; database connection pools are released when the plugin unloads; players connected across a hot reload are tracked again so their profile is released when they leave.
Install / upgrade
- Same requirements: CounterStrikeSharp 1.0.369+ and
FollowCS2ServerGuidelines: falseinconfigs/core.json. - Upgrading from 1.0.14: replace
AstraSkins.dll. No config, data, language or database changes.
v1.0.14
Changes
- Fix: team select music doubling or sticking after a map change (#14). When a client is fully connected the engine rewrites the music kit to the stock one, and if that value reached the client for even a single snapshot before the plugin put the selected kit back, the client started the default team select track and never stopped it when the kit switched back. The kit is now reconciled right before the server builds each snapshot, so the client only ever sees the selected kit. Reported by @xiaoyueyoqwq.
Install / upgrade
- Same requirements: CounterStrikeSharp 1.0.369+ and
FollowCS2ServerGuidelines: falseinconfigs/core.json. - Upgrading from 1.0.13: replace
AstraSkins.dll. No config, data, language or database changes.
v1.0.13
Changes
- Permissions are enforced when cosmetics are applied, not only in the menu. A saved selection whose flag the player no longer has stops applying at the next spawn (music kits within a tick) and comes back as soon as the flag does. Covers weapons, knives, gloves, agents, the team intro preview and the MVP anthem. A flag on a glove type now also gates its skins when selecting, like knives already did.
- The per-entry
permissionfield is documented. It was always there, just never explained: see the new Permissions section under Cosmetic Data in the README. Asked in #13. - Music kits reconcile every tick. Any reset of a player's kit by the engine (a bot joining or spawning, the round boundary) is corrected on the next tick, replacing the per-event timers. Nothing is sent unless a field actually changed.
- Players without a selected kit are left alone. The plugin no longer writes kit 0 to them, so a real music kit is never overwritten. Resetting a kit you selected here hands you the stock CS2 music right away.
m_pInventoryServicesis flagged when the inventory music id changes, matching what other skin plugins do, and every music field is compared before it is written. Contributed by @xiaoyueyoqwq (#11). The mid-roundbot_addcase from #12 is covered by the per-tick reconcile above.
Install / upgrade
- Same requirements: CounterStrikeSharp 1.0.369+ and
FollowCS2ServerGuidelines: falseinconfigs/core.json. - Upgrading from 1.0.12: replace
AstraSkins.dll. No config, data, language or database changes.
v1.0.12
Changes
- Chinese names everywhere. Players whose game language is Chinese now see skins, knives, gloves, agents, categories, and music kits with their official Chinese names, and
!ws <text>finds items typed in either language. Everyone else keeps English. SamedisplayNameZhfield the VincentZyu233 fork used for its bilingual menu, generated from the same upstream data. - Name tag word filter.
Customization.BlockedNameTagWordsrejects name tags containing any listed word (case-insensitive substring). Empty by default; each server adds its own. - Admin reset by SteamID.
css_wsresetplayer <steamid64> [all|weapons|knife|gloves|agents|music]resets a player's selections whether they are connected or not, gated byEnableAdminResetCommandandAdminResetPermission. - Resets apply right away.
!wsreset knifeand!wsreset weaponsnow hand out the stock item on the spot with the ammo carried over, instead of leaving the old skin visible until the next round. Grenades and the C4 are never touched. - MVP anthem after a C4 death. A T who plants, wins the round as MVP, and dies in the explosion now hears their own anthem instead of the death music. Contributed by @xiaoyueyoqwq (#10).
- Team intro preview slots are refreshed on the tick the engine assigns their owner. Note: the very first team select screen after connecting has no owner assigned by the engine, so it keeps the default characters; opening it again with M once on a team shows your agent.
Install / upgrade
- Same requirements: CounterStrikeSharp 1.0.369+ and
FollowCS2ServerGuidelines: falseinconfigs/core.json. - Upgrading from 1.0.11: replace
AstraSkins.dll, thedata/folder (Chinese names) and thelang/folder (five new messages in all seven languages). New config keys are optional; a config without them behaves as before. No database changes.
v1.0.11
Changes
- Team intro shows your cosmetics. The match intro and team select screens now display your selected agent, gloves, and weapon skins instead of the defaults. Requires
mp_team_intro_timeabove 0 on the server. Contributed by @xiaoyueyoqwq (#9), with a follow-up that shares the paint path with the live weapon code. - Optional StatTrak by default. New
EnableStatTrakByDefaultoption, off by default. When on, every weapon and knife with a selected skin or knife type starts with a StatTrak counter at 0 and counts kills from there.!stattrak resetturns it off per item and stays off; an explicit count still wins. Gloves and stock weapons are never affected. No database changes. Proposed by @xiaoyueyoqwq (#3, #8).
Install / upgrade
- Same requirements: CounterStrikeSharp 1.0.369+ and
FollowCS2ServerGuidelines: falseinconfigs/core.json. - Upgrading from 1.0.10: replace
AstraSkins.dll. The new option is optional; a config without it behaves asfalse. No language, data, or database changes.
v1.0.10
Changes
- Seven missing music kits added. Kits 32 to 38 (the StatTrak Radicals Box: Beartooth, Blitz Kids, Hundredth, Neck Deep, Roam, Twin Atlantic, Skog) only ever existed as StatTrak variants, and the definitions generator dropped every StatTrak listing to avoid duplicates, so they never reached the menu. The list now has 99 kits.
- Menu search covers music kits.
!ws <text>now finds music kits by name too; the search view predated the music category and never included it.
Thanks to @FDKkkkkkkk for the report (#7).
Install / upgrade
- Same requirements: CounterStrikeSharp 1.0.369+ and
FollowCS2ServerGuidelines: falseinconfigs/core.json. - Upgrading from 1.0.9: replace
AstraSkins.dllanddata/music_kits.json, then runcss_wsreloador restart. No config, language, or database changes.