Skip to content

Releases: Ayrton09/AstraSkins

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 00:50

Changes

  • Module switches (#17). Every module has its own section in the config with Enabled and Permission: 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 Commands section of the config lists the names of every chat command, with any number of aliases each ("Charms": ["css_charms", "kch"] answers to !charms and !kch). Names get the css_ 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). !nametag and !stattrak no longer need a selected skin: they work on the stock finish of any gun and on the default knife. !seed and !wear still need a skin, since the stock finish has no pattern or wear to change.

Install / upgrade

  • Same requirements: CounterStrikeSharp 1.0.369+ and FollowCS2ServerGuidelines: false in configs/core.json.
  • Upgrading from 1.1.x: replace the plugin folder and the lang files. 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

Choose a tag to compare

@github-actions github-actions released this 15 Sep 23:16

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: false in configs/core.json.
  • Upgrading from 1.1.1: replace the runtimes/linux-x64/native/libe_sqlite3.so file (or the whole plugin folder). No config, data, language or database changes.

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 15 Sep 09:42

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: false in configs/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

Choose a tag to compare

@github-actions github-actions released this 14 Sep 18:52

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; !stickers and !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 Stickers and Keychains sections in the config, each with Enabled and Permission, separate from the customization commands. Every entry in data/stickers.json and data/keychains.json accepts the usual permission field, and the check runs on the apply side too. Deleting a data file hides its menu entry.
  • !wsreset stickers and !wsreset charms, also for css_wsresetplayer; !wsreset weapons clears 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: false in configs/core.json.
  • Upgrading from 1.0.15: replace the whole plugins/AstraSkins folder (new data/stickers.json and data/keychains.json, updated lang/*.json). The config gets two optional sections; without them stickers and charms are on for everyone. No database changes.

v1.0.15

Choose a tag to compare

@github-actions github-actions released this 08 Sep 20:26

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 null entry or a null skins 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_wsreload wait 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_wsreload refuses to run when the plugin failed to initialize; the menu closes when a player takes over a bot; !ws search 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: false in configs/core.json.
  • Upgrading from 1.0.14: replace AstraSkins.dll. No config, data, language or database changes.

v1.0.14

Choose a tag to compare

@github-actions github-actions released this 08 Sep 01:16

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: false in configs/core.json.
  • Upgrading from 1.0.13: replace AstraSkins.dll. No config, data, language or database changes.

v1.0.13

Choose a tag to compare

@github-actions github-actions released this 06 Sep 23:14

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 permission field 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_pInventoryServices is 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-round bot_add case from #12 is covered by the per-tick reconcile above.

Install / upgrade

  • Same requirements: CounterStrikeSharp 1.0.369+ and FollowCS2ServerGuidelines: false in configs/core.json.
  • Upgrading from 1.0.12: replace AstraSkins.dll. No config, data, language or database changes.

v1.0.12

Choose a tag to compare

@github-actions github-actions released this 06 Sep 08:38

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. Same displayNameZh field the VincentZyu233 fork used for its bilingual menu, generated from the same upstream data.
  • Name tag word filter. Customization.BlockedNameTagWords rejects 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 by EnableAdminResetCommand and AdminResetPermission.
  • Resets apply right away. !wsreset knife and !wsreset weapons now 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: false in configs/core.json.
  • Upgrading from 1.0.11: replace AstraSkins.dll, the data/ folder (Chinese names) and the lang/ 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

Choose a tag to compare

@github-actions github-actions released this 05 Sep 22:13

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_time above 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 EnableStatTrakByDefault option, 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 reset turns 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: false in configs/core.json.
  • Upgrading from 1.0.10: replace AstraSkins.dll. The new option is optional; a config without it behaves as false. No language, data, or database changes.

v1.0.10

Choose a tag to compare

@github-actions github-actions released this 03 Sep 21:15

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: false in configs/core.json.
  • Upgrading from 1.0.9: replace AstraSkins.dll and data/music_kits.json, then run css_wsreload or restart. No config, language, or database changes.